#ifndef GL_PROC_glEXT_HPP
#define GL_PROC_glEXT_HPP
#include "common.hpp"


#ifndef GL_3DFX_multisample
#define GL_3DFX_multisample
#ifndef GL_MULTISAMPLE_BIT_3DFX
#define GL_MULTISAMPLE_BIT_3DFX 0x20000000
#endif //GL_MULTISAMPLE_BIT_3DFX
#ifndef GL_MULTISAMPLE_3DFX
#define GL_MULTISAMPLE_3DFX 0x86B2
#endif //GL_MULTISAMPLE_3DFX
#ifndef GL_SAMPLE_BUFFERS_3DFX
#define GL_SAMPLE_BUFFERS_3DFX 0x86B3
#endif //GL_SAMPLE_BUFFERS_3DFX
#ifndef GL_SAMPLES_3DFX
#define GL_SAMPLES_3DFX 0x86B4
#endif //GL_SAMPLES_3DFX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_3DFX_tbuffer
#define GL_3DFX_tbuffer
extern "C" {
}
namespace gl{

typedef void (*PFNGLTBUFFERMASK3DFXPROC_HPP)(GLuint);
static inline void TbufferMask3DFX(GLuint mask1)
{
	static PFNGLTBUFFERMASK3DFXPROC_HPP fn=reinterpret_cast<PFNGLTBUFFERMASK3DFXPROC_HPP>(_impl::_get_proc_address("glTbufferMask3DFX","GL_3DFX_tbuffer"));
	 fn(mask1);
}}
#endif

#ifndef GL_3DFX_texture_compression_FXT1
#define GL_3DFX_texture_compression_FXT1
#ifndef GL_COMPRESSED_RGB_FXT1_3DFX
#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0
#endif //GL_COMPRESSED_RGB_FXT1_3DFX
#ifndef GL_COMPRESSED_RGBA_FXT1_3DFX
#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1
#endif //GL_COMPRESSED_RGBA_FXT1_3DFX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_AMD_blend_minmax_factor
#define GL_AMD_blend_minmax_factor
#ifndef GL_FACTOR_MIN_AMD
#define GL_FACTOR_MIN_AMD 0x901C
#endif //GL_FACTOR_MIN_AMD
#ifndef GL_FACTOR_MAX_AMD
#define GL_FACTOR_MAX_AMD 0x901D
#endif //GL_FACTOR_MAX_AMD
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_AMD_conservative_depth
#define GL_AMD_conservative_depth
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_AMD_debug_output
#define GL_AMD_debug_output
#ifndef GL_MAX_DEBUG_MESSAGE_LENGTH_AMD
#define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143
#endif //GL_MAX_DEBUG_MESSAGE_LENGTH_AMD
#ifndef GL_MAX_DEBUG_LOGGED_MESSAGES_AMD
#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144
#endif //GL_MAX_DEBUG_LOGGED_MESSAGES_AMD
#ifndef GL_DEBUG_LOGGED_MESSAGES_AMD
#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145
#endif //GL_DEBUG_LOGGED_MESSAGES_AMD
#ifndef GL_DEBUG_SEVERITY_HIGH_AMD
#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146
#endif //GL_DEBUG_SEVERITY_HIGH_AMD
#ifndef GL_DEBUG_SEVERITY_MEDIUM_AMD
#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147
#endif //GL_DEBUG_SEVERITY_MEDIUM_AMD
#ifndef GL_DEBUG_SEVERITY_LOW_AMD
#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148
#endif //GL_DEBUG_SEVERITY_LOW_AMD
#ifndef GL_DEBUG_CATEGORY_API_ERROR_AMD
#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149
#endif //GL_DEBUG_CATEGORY_API_ERROR_AMD
#ifndef GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD
#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A
#endif //GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD
#ifndef GL_DEBUG_CATEGORY_DEPRECATION_AMD
#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B
#endif //GL_DEBUG_CATEGORY_DEPRECATION_AMD
#ifndef GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD
#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C
#endif //GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD
#ifndef GL_DEBUG_CATEGORY_PERFORMANCE_AMD
#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D
#endif //GL_DEBUG_CATEGORY_PERFORMANCE_AMD
#ifndef GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD
#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E
#endif //GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD
#ifndef GL_DEBUG_CATEGORY_APPLICATION_AMD
#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F
#endif //GL_DEBUG_CATEGORY_APPLICATION_AMD
#ifndef GL_DEBUG_CATEGORY_OTHER_AMD
#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150
#endif //GL_DEBUG_CATEGORY_OTHER_AMD
extern "C" {
}
namespace gl{

typedef void (*PFNGLDEBUGMESSAGECALLBACKAMDPROC_HPP)(GLDEBUGPROCAMD,void *);
static inline void DebugMessageCallbackAMD(GLDEBUGPROCAMD callback1,void * userParam1)
{
	static PFNGLDEBUGMESSAGECALLBACKAMDPROC_HPP fn=reinterpret_cast<PFNGLDEBUGMESSAGECALLBACKAMDPROC_HPP>(_impl::_get_proc_address("glDebugMessageCallbackAMD","GL_AMD_debug_output"));
	 fn(callback1,userParam1);
}
typedef void (*PFNGLDEBUGMESSAGEENABLEAMDPROC_HPP)(GLenum,GLenum,GLsizei,const GLuint *,GLboolean);
static inline void DebugMessageEnableAMD(GLenum category1,GLenum severity1,GLsizei count1,const GLuint * ids1,GLboolean enabled1)
{
	static PFNGLDEBUGMESSAGEENABLEAMDPROC_HPP fn=reinterpret_cast<PFNGLDEBUGMESSAGEENABLEAMDPROC_HPP>(_impl::_get_proc_address("glDebugMessageEnableAMD","GL_AMD_debug_output"));
	 fn(category1,severity1,count1,ids1,enabled1);
}
typedef void (*PFNGLDEBUGMESSAGEINSERTAMDPROC_HPP)(GLenum,GLenum,GLuint,GLsizei,const GLchar *);
static inline void DebugMessageInsertAMD(GLenum category1,GLenum severity1,GLuint id1,GLsizei length1,const GLchar * buf1)
{
	static PFNGLDEBUGMESSAGEINSERTAMDPROC_HPP fn=reinterpret_cast<PFNGLDEBUGMESSAGEINSERTAMDPROC_HPP>(_impl::_get_proc_address("glDebugMessageInsertAMD","GL_AMD_debug_output"));
	 fn(category1,severity1,id1,length1,buf1);
}
typedef GLuint (*PFNGLGETDEBUGMESSAGELOGAMDPROC_HPP)(GLuint,GLsizei,GLenum *,GLuint *,GLuint *,GLsizei *,GLchar *);
static inline GLuint GetDebugMessageLogAMD(GLuint count1,GLsizei bufsize1,GLenum * categories1,GLuint * severities1,GLuint * ids1,GLsizei * lengths1,GLchar * message1)
{
	static PFNGLGETDEBUGMESSAGELOGAMDPROC_HPP fn=reinterpret_cast<PFNGLGETDEBUGMESSAGELOGAMDPROC_HPP>(_impl::_get_proc_address("glGetDebugMessageLogAMD","GL_AMD_debug_output"));
	return fn(count1,bufsize1,categories1,severities1,ids1,lengths1,message1);
}}
#endif

#ifndef GL_AMD_depth_clamp_separate
#define GL_AMD_depth_clamp_separate
#ifndef GL_DEPTH_CLAMP_NEAR_AMD
#define GL_DEPTH_CLAMP_NEAR_AMD 0x901E
#endif //GL_DEPTH_CLAMP_NEAR_AMD
#ifndef GL_DEPTH_CLAMP_FAR_AMD
#define GL_DEPTH_CLAMP_FAR_AMD 0x901F
#endif //GL_DEPTH_CLAMP_FAR_AMD
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_AMD_draw_buffers_blend
#define GL_AMD_draw_buffers_blend
extern "C" {
}
namespace gl{

typedef void (*PFNGLBLENDEQUATIONINDEXEDAMDPROC_HPP)(GLuint,GLenum);
static inline void BlendEquationIndexedAMD(GLuint buf1,GLenum mode1)
{
	static PFNGLBLENDEQUATIONINDEXEDAMDPROC_HPP fn=reinterpret_cast<PFNGLBLENDEQUATIONINDEXEDAMDPROC_HPP>(_impl::_get_proc_address("glBlendEquationIndexedAMD","GL_AMD_draw_buffers_blend"));
	 fn(buf1,mode1);
}
typedef void (*PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC_HPP)(GLuint,GLenum,GLenum);
static inline void BlendEquationSeparateIndexedAMD(GLuint buf1,GLenum modeRGB1,GLenum modeAlpha1)
{
	static PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC_HPP fn=reinterpret_cast<PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC_HPP>(_impl::_get_proc_address("glBlendEquationSeparateIndexedAMD","GL_AMD_draw_buffers_blend"));
	 fn(buf1,modeRGB1,modeAlpha1);
}
typedef void (*PFNGLBLENDFUNCINDEXEDAMDPROC_HPP)(GLuint,GLenum,GLenum);
static inline void BlendFuncIndexedAMD(GLuint buf1,GLenum src1,GLenum dst1)
{
	static PFNGLBLENDFUNCINDEXEDAMDPROC_HPP fn=reinterpret_cast<PFNGLBLENDFUNCINDEXEDAMDPROC_HPP>(_impl::_get_proc_address("glBlendFuncIndexedAMD","GL_AMD_draw_buffers_blend"));
	 fn(buf1,src1,dst1);
}
typedef void (*PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC_HPP)(GLuint,GLenum,GLenum,GLenum,GLenum);
static inline void BlendFuncSeparateIndexedAMD(GLuint buf1,GLenum srcRGB1,GLenum dstRGB1,GLenum srcAlpha1,GLenum dstAlpha1)
{
	static PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC_HPP fn=reinterpret_cast<PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC_HPP>(_impl::_get_proc_address("glBlendFuncSeparateIndexedAMD","GL_AMD_draw_buffers_blend"));
	 fn(buf1,srcRGB1,dstRGB1,srcAlpha1,dstAlpha1);
}}
#endif

#ifndef GL_AMD_gcn_shader
#define GL_AMD_gcn_shader
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_AMD_gpu_shader_int64
#define GL_AMD_gpu_shader_int64
#ifndef GL_INT64_NV
#define GL_INT64_NV 0x140E
#endif //GL_INT64_NV
#ifndef GL_UNSIGNED_INT64_NV
#define GL_UNSIGNED_INT64_NV 0x140F
#endif //GL_UNSIGNED_INT64_NV
#ifndef GL_INT8_NV
#define GL_INT8_NV 0x8FE0
#endif //GL_INT8_NV
#ifndef GL_INT8_VEC2_NV
#define GL_INT8_VEC2_NV 0x8FE1
#endif //GL_INT8_VEC2_NV
#ifndef GL_INT8_VEC3_NV
#define GL_INT8_VEC3_NV 0x8FE2
#endif //GL_INT8_VEC3_NV
#ifndef GL_INT8_VEC4_NV
#define GL_INT8_VEC4_NV 0x8FE3
#endif //GL_INT8_VEC4_NV
#ifndef GL_INT16_NV
#define GL_INT16_NV 0x8FE4
#endif //GL_INT16_NV
#ifndef GL_INT16_VEC2_NV
#define GL_INT16_VEC2_NV 0x8FE5
#endif //GL_INT16_VEC2_NV
#ifndef GL_INT16_VEC3_NV
#define GL_INT16_VEC3_NV 0x8FE6
#endif //GL_INT16_VEC3_NV
#ifndef GL_INT16_VEC4_NV
#define GL_INT16_VEC4_NV 0x8FE7
#endif //GL_INT16_VEC4_NV
#ifndef GL_INT64_VEC2_NV
#define GL_INT64_VEC2_NV 0x8FE9
#endif //GL_INT64_VEC2_NV
#ifndef GL_INT64_VEC3_NV
#define GL_INT64_VEC3_NV 0x8FEA
#endif //GL_INT64_VEC3_NV
#ifndef GL_INT64_VEC4_NV
#define GL_INT64_VEC4_NV 0x8FEB
#endif //GL_INT64_VEC4_NV
#ifndef GL_UNSIGNED_INT8_NV
#define GL_UNSIGNED_INT8_NV 0x8FEC
#endif //GL_UNSIGNED_INT8_NV
#ifndef GL_UNSIGNED_INT8_VEC2_NV
#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED
#endif //GL_UNSIGNED_INT8_VEC2_NV
#ifndef GL_UNSIGNED_INT8_VEC3_NV
#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE
#endif //GL_UNSIGNED_INT8_VEC3_NV
#ifndef GL_UNSIGNED_INT8_VEC4_NV
#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF
#endif //GL_UNSIGNED_INT8_VEC4_NV
#ifndef GL_UNSIGNED_INT16_NV
#define GL_UNSIGNED_INT16_NV 0x8FF0
#endif //GL_UNSIGNED_INT16_NV
#ifndef GL_UNSIGNED_INT16_VEC2_NV
#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1
#endif //GL_UNSIGNED_INT16_VEC2_NV
#ifndef GL_UNSIGNED_INT16_VEC3_NV
#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2
#endif //GL_UNSIGNED_INT16_VEC3_NV
#ifndef GL_UNSIGNED_INT16_VEC4_NV
#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3
#endif //GL_UNSIGNED_INT16_VEC4_NV
#ifndef GL_UNSIGNED_INT64_VEC2_NV
#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5
#endif //GL_UNSIGNED_INT64_VEC2_NV
#ifndef GL_UNSIGNED_INT64_VEC3_NV
#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6
#endif //GL_UNSIGNED_INT64_VEC3_NV
#ifndef GL_UNSIGNED_INT64_VEC4_NV
#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7
#endif //GL_UNSIGNED_INT64_VEC4_NV
#ifndef GL_FLOAT16_NV
#define GL_FLOAT16_NV 0x8FF8
#endif //GL_FLOAT16_NV
#ifndef GL_FLOAT16_VEC2_NV
#define GL_FLOAT16_VEC2_NV 0x8FF9
#endif //GL_FLOAT16_VEC2_NV
#ifndef GL_FLOAT16_VEC3_NV
#define GL_FLOAT16_VEC3_NV 0x8FFA
#endif //GL_FLOAT16_VEC3_NV
#ifndef GL_FLOAT16_VEC4_NV
#define GL_FLOAT16_VEC4_NV 0x8FFB
#endif //GL_FLOAT16_VEC4_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETUNIFORMI64VNVPROC_HPP)(GLuint,GLint,GLint64EXT *);
static inline void GetUniformi64vNV(GLuint program1,GLint location1,GLint64EXT * params1)
{
	static PFNGLGETUNIFORMI64VNVPROC_HPP fn=reinterpret_cast<PFNGLGETUNIFORMI64VNVPROC_HPP>(_impl::_get_proc_address("glGetUniformi64vNV","GL_AMD_gpu_shader_int64"));
	 fn(program1,location1,params1);
}
typedef void (*PFNGLGETUNIFORMUI64VNVPROC_HPP)(GLuint,GLint,GLuint64EXT *);
static inline void GetUniformui64vNV(GLuint program1,GLint location1,GLuint64EXT * params1)
{
	static PFNGLGETUNIFORMUI64VNVPROC_HPP fn=reinterpret_cast<PFNGLGETUNIFORMUI64VNVPROC_HPP>(_impl::_get_proc_address("glGetUniformui64vNV","GL_AMD_gpu_shader_int64"));
	 fn(program1,location1,params1);
}
typedef void (*PFNGLPROGRAMUNIFORM1I64NVPROC_HPP)(GLuint,GLint,GLint64EXT);
static inline void ProgramUniform1i64NV(GLuint program1,GLint location1,GLint64EXT x1)
{
	static PFNGLPROGRAMUNIFORM1I64NVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1I64NVPROC_HPP>(_impl::_get_proc_address("glProgramUniform1i64NV","GL_AMD_gpu_shader_int64"));
	 fn(program1,location1,x1);
}
typedef void (*PFNGLPROGRAMUNIFORM1I64VNVPROC_HPP)(GLuint,GLint,GLsizei,const GLint64EXT *);
static inline void ProgramUniform1i64vNV(GLuint program1,GLint location1,GLsizei count1,const GLint64EXT * value1)
{
	static PFNGLPROGRAMUNIFORM1I64VNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1I64VNVPROC_HPP>(_impl::_get_proc_address("glProgramUniform1i64vNV","GL_AMD_gpu_shader_int64"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM1UI64NVPROC_HPP)(GLuint,GLint,GLuint64EXT);
static inline void ProgramUniform1ui64NV(GLuint program1,GLint location1,GLuint64EXT x1)
{
	static PFNGLPROGRAMUNIFORM1UI64NVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1UI64NVPROC_HPP>(_impl::_get_proc_address("glProgramUniform1ui64NV","GL_AMD_gpu_shader_int64"));
	 fn(program1,location1,x1);
}
typedef void (*PFNGLPROGRAMUNIFORM1UI64VNVPROC_HPP)(GLuint,GLint,GLsizei,const GLuint64EXT *);
static inline void ProgramUniform1ui64vNV(GLuint program1,GLint location1,GLsizei count1,const GLuint64EXT * value1)
{
	static PFNGLPROGRAMUNIFORM1UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1UI64VNVPROC_HPP>(_impl::_get_proc_address("glProgramUniform1ui64vNV","GL_AMD_gpu_shader_int64"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM2I64NVPROC_HPP)(GLuint,GLint,GLint64EXT,GLint64EXT);
static inline void ProgramUniform2i64NV(GLuint program1,GLint location1,GLint64EXT x1,GLint64EXT y1)
{
	static PFNGLPROGRAMUNIFORM2I64NVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2I64NVPROC_HPP>(_impl::_get_proc_address("glProgramUniform2i64NV","GL_AMD_gpu_shader_int64"));
	 fn(program1,location1,x1,y1);
}
typedef void (*PFNGLPROGRAMUNIFORM2I64VNVPROC_HPP)(GLuint,GLint,GLsizei,const GLint64EXT *);
static inline void ProgramUniform2i64vNV(GLuint program1,GLint location1,GLsizei count1,const GLint64EXT * value1)
{
	static PFNGLPROGRAMUNIFORM2I64VNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2I64VNVPROC_HPP>(_impl::_get_proc_address("glProgramUniform2i64vNV","GL_AMD_gpu_shader_int64"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM2UI64NVPROC_HPP)(GLuint,GLint,GLuint64EXT,GLuint64EXT);
static inline void ProgramUniform2ui64NV(GLuint program1,GLint location1,GLuint64EXT x1,GLuint64EXT y1)
{
	static PFNGLPROGRAMUNIFORM2UI64NVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2UI64NVPROC_HPP>(_impl::_get_proc_address("glProgramUniform2ui64NV","GL_AMD_gpu_shader_int64"));
	 fn(program1,location1,x1,y1);
}
typedef void (*PFNGLPROGRAMUNIFORM2UI64VNVPROC_HPP)(GLuint,GLint,GLsizei,const GLuint64EXT *);
static inline void ProgramUniform2ui64vNV(GLuint program1,GLint location1,GLsizei count1,const GLuint64EXT * value1)
{
	static PFNGLPROGRAMUNIFORM2UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2UI64VNVPROC_HPP>(_impl::_get_proc_address("glProgramUniform2ui64vNV","GL_AMD_gpu_shader_int64"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM3I64NVPROC_HPP)(GLuint,GLint,GLint64EXT,GLint64EXT,GLint64EXT);
static inline void ProgramUniform3i64NV(GLuint program1,GLint location1,GLint64EXT x1,GLint64EXT y1,GLint64EXT z1)
{
	static PFNGLPROGRAMUNIFORM3I64NVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3I64NVPROC_HPP>(_impl::_get_proc_address("glProgramUniform3i64NV","GL_AMD_gpu_shader_int64"));
	 fn(program1,location1,x1,y1,z1);
}
typedef void (*PFNGLPROGRAMUNIFORM3I64VNVPROC_HPP)(GLuint,GLint,GLsizei,const GLint64EXT *);
static inline void ProgramUniform3i64vNV(GLuint program1,GLint location1,GLsizei count1,const GLint64EXT * value1)
{
	static PFNGLPROGRAMUNIFORM3I64VNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3I64VNVPROC_HPP>(_impl::_get_proc_address("glProgramUniform3i64vNV","GL_AMD_gpu_shader_int64"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM3UI64NVPROC_HPP)(GLuint,GLint,GLuint64EXT,GLuint64EXT,GLuint64EXT);
static inline void ProgramUniform3ui64NV(GLuint program1,GLint location1,GLuint64EXT x1,GLuint64EXT y1,GLuint64EXT z1)
{
	static PFNGLPROGRAMUNIFORM3UI64NVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3UI64NVPROC_HPP>(_impl::_get_proc_address("glProgramUniform3ui64NV","GL_AMD_gpu_shader_int64"));
	 fn(program1,location1,x1,y1,z1);
}
typedef void (*PFNGLPROGRAMUNIFORM3UI64VNVPROC_HPP)(GLuint,GLint,GLsizei,const GLuint64EXT *);
static inline void ProgramUniform3ui64vNV(GLuint program1,GLint location1,GLsizei count1,const GLuint64EXT * value1)
{
	static PFNGLPROGRAMUNIFORM3UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3UI64VNVPROC_HPP>(_impl::_get_proc_address("glProgramUniform3ui64vNV","GL_AMD_gpu_shader_int64"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM4I64NVPROC_HPP)(GLuint,GLint,GLint64EXT,GLint64EXT,GLint64EXT,GLint64EXT);
static inline void ProgramUniform4i64NV(GLuint program1,GLint location1,GLint64EXT x1,GLint64EXT y1,GLint64EXT z1,GLint64EXT w1)
{
	static PFNGLPROGRAMUNIFORM4I64NVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4I64NVPROC_HPP>(_impl::_get_proc_address("glProgramUniform4i64NV","GL_AMD_gpu_shader_int64"));
	 fn(program1,location1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMUNIFORM4I64VNVPROC_HPP)(GLuint,GLint,GLsizei,const GLint64EXT *);
static inline void ProgramUniform4i64vNV(GLuint program1,GLint location1,GLsizei count1,const GLint64EXT * value1)
{
	static PFNGLPROGRAMUNIFORM4I64VNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4I64VNVPROC_HPP>(_impl::_get_proc_address("glProgramUniform4i64vNV","GL_AMD_gpu_shader_int64"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM4UI64NVPROC_HPP)(GLuint,GLint,GLuint64EXT,GLuint64EXT,GLuint64EXT,GLuint64EXT);
static inline void ProgramUniform4ui64NV(GLuint program1,GLint location1,GLuint64EXT x1,GLuint64EXT y1,GLuint64EXT z1,GLuint64EXT w1)
{
	static PFNGLPROGRAMUNIFORM4UI64NVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4UI64NVPROC_HPP>(_impl::_get_proc_address("glProgramUniform4ui64NV","GL_AMD_gpu_shader_int64"));
	 fn(program1,location1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMUNIFORM4UI64VNVPROC_HPP)(GLuint,GLint,GLsizei,const GLuint64EXT *);
static inline void ProgramUniform4ui64vNV(GLuint program1,GLint location1,GLsizei count1,const GLuint64EXT * value1)
{
	static PFNGLPROGRAMUNIFORM4UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4UI64VNVPROC_HPP>(_impl::_get_proc_address("glProgramUniform4ui64vNV","GL_AMD_gpu_shader_int64"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLUNIFORM1I64NVPROC_HPP)(GLint,GLint64EXT);
static inline void Uniform1i64NV(GLint location1,GLint64EXT x1)
{
	static PFNGLUNIFORM1I64NVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM1I64NVPROC_HPP>(_impl::_get_proc_address("glUniform1i64NV","GL_AMD_gpu_shader_int64"));
	 fn(location1,x1);
}
typedef void (*PFNGLUNIFORM1I64VNVPROC_HPP)(GLint,GLsizei,const GLint64EXT *);
static inline void Uniform1i64vNV(GLint location1,GLsizei count1,const GLint64EXT * value1)
{
	static PFNGLUNIFORM1I64VNVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM1I64VNVPROC_HPP>(_impl::_get_proc_address("glUniform1i64vNV","GL_AMD_gpu_shader_int64"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM1UI64NVPROC_HPP)(GLint,GLuint64EXT);
static inline void Uniform1ui64NV(GLint location1,GLuint64EXT x1)
{
	static PFNGLUNIFORM1UI64NVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM1UI64NVPROC_HPP>(_impl::_get_proc_address("glUniform1ui64NV","GL_AMD_gpu_shader_int64"));
	 fn(location1,x1);
}
typedef void (*PFNGLUNIFORM1UI64VNVPROC_HPP)(GLint,GLsizei,const GLuint64EXT *);
static inline void Uniform1ui64vNV(GLint location1,GLsizei count1,const GLuint64EXT * value1)
{
	static PFNGLUNIFORM1UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM1UI64VNVPROC_HPP>(_impl::_get_proc_address("glUniform1ui64vNV","GL_AMD_gpu_shader_int64"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM2I64NVPROC_HPP)(GLint,GLint64EXT,GLint64EXT);
static inline void Uniform2i64NV(GLint location1,GLint64EXT x1,GLint64EXT y1)
{
	static PFNGLUNIFORM2I64NVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM2I64NVPROC_HPP>(_impl::_get_proc_address("glUniform2i64NV","GL_AMD_gpu_shader_int64"));
	 fn(location1,x1,y1);
}
typedef void (*PFNGLUNIFORM2I64VNVPROC_HPP)(GLint,GLsizei,const GLint64EXT *);
static inline void Uniform2i64vNV(GLint location1,GLsizei count1,const GLint64EXT * value1)
{
	static PFNGLUNIFORM2I64VNVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM2I64VNVPROC_HPP>(_impl::_get_proc_address("glUniform2i64vNV","GL_AMD_gpu_shader_int64"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM2UI64NVPROC_HPP)(GLint,GLuint64EXT,GLuint64EXT);
static inline void Uniform2ui64NV(GLint location1,GLuint64EXT x1,GLuint64EXT y1)
{
	static PFNGLUNIFORM2UI64NVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM2UI64NVPROC_HPP>(_impl::_get_proc_address("glUniform2ui64NV","GL_AMD_gpu_shader_int64"));
	 fn(location1,x1,y1);
}
typedef void (*PFNGLUNIFORM2UI64VNVPROC_HPP)(GLint,GLsizei,const GLuint64EXT *);
static inline void Uniform2ui64vNV(GLint location1,GLsizei count1,const GLuint64EXT * value1)
{
	static PFNGLUNIFORM2UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM2UI64VNVPROC_HPP>(_impl::_get_proc_address("glUniform2ui64vNV","GL_AMD_gpu_shader_int64"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM3I64NVPROC_HPP)(GLint,GLint64EXT,GLint64EXT,GLint64EXT);
static inline void Uniform3i64NV(GLint location1,GLint64EXT x1,GLint64EXT y1,GLint64EXT z1)
{
	static PFNGLUNIFORM3I64NVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM3I64NVPROC_HPP>(_impl::_get_proc_address("glUniform3i64NV","GL_AMD_gpu_shader_int64"));
	 fn(location1,x1,y1,z1);
}
typedef void (*PFNGLUNIFORM3I64VNVPROC_HPP)(GLint,GLsizei,const GLint64EXT *);
static inline void Uniform3i64vNV(GLint location1,GLsizei count1,const GLint64EXT * value1)
{
	static PFNGLUNIFORM3I64VNVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM3I64VNVPROC_HPP>(_impl::_get_proc_address("glUniform3i64vNV","GL_AMD_gpu_shader_int64"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM3UI64NVPROC_HPP)(GLint,GLuint64EXT,GLuint64EXT,GLuint64EXT);
static inline void Uniform3ui64NV(GLint location1,GLuint64EXT x1,GLuint64EXT y1,GLuint64EXT z1)
{
	static PFNGLUNIFORM3UI64NVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM3UI64NVPROC_HPP>(_impl::_get_proc_address("glUniform3ui64NV","GL_AMD_gpu_shader_int64"));
	 fn(location1,x1,y1,z1);
}
typedef void (*PFNGLUNIFORM3UI64VNVPROC_HPP)(GLint,GLsizei,const GLuint64EXT *);
static inline void Uniform3ui64vNV(GLint location1,GLsizei count1,const GLuint64EXT * value1)
{
	static PFNGLUNIFORM3UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM3UI64VNVPROC_HPP>(_impl::_get_proc_address("glUniform3ui64vNV","GL_AMD_gpu_shader_int64"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM4I64NVPROC_HPP)(GLint,GLint64EXT,GLint64EXT,GLint64EXT,GLint64EXT);
static inline void Uniform4i64NV(GLint location1,GLint64EXT x1,GLint64EXT y1,GLint64EXT z1,GLint64EXT w1)
{
	static PFNGLUNIFORM4I64NVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM4I64NVPROC_HPP>(_impl::_get_proc_address("glUniform4i64NV","GL_AMD_gpu_shader_int64"));
	 fn(location1,x1,y1,z1,w1);
}
typedef void (*PFNGLUNIFORM4I64VNVPROC_HPP)(GLint,GLsizei,const GLint64EXT *);
static inline void Uniform4i64vNV(GLint location1,GLsizei count1,const GLint64EXT * value1)
{
	static PFNGLUNIFORM4I64VNVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM4I64VNVPROC_HPP>(_impl::_get_proc_address("glUniform4i64vNV","GL_AMD_gpu_shader_int64"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM4UI64NVPROC_HPP)(GLint,GLuint64EXT,GLuint64EXT,GLuint64EXT,GLuint64EXT);
static inline void Uniform4ui64NV(GLint location1,GLuint64EXT x1,GLuint64EXT y1,GLuint64EXT z1,GLuint64EXT w1)
{
	static PFNGLUNIFORM4UI64NVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM4UI64NVPROC_HPP>(_impl::_get_proc_address("glUniform4ui64NV","GL_AMD_gpu_shader_int64"));
	 fn(location1,x1,y1,z1,w1);
}
typedef void (*PFNGLUNIFORM4UI64VNVPROC_HPP)(GLint,GLsizei,const GLuint64EXT *);
static inline void Uniform4ui64vNV(GLint location1,GLsizei count1,const GLuint64EXT * value1)
{
	static PFNGLUNIFORM4UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM4UI64VNVPROC_HPP>(_impl::_get_proc_address("glUniform4ui64vNV","GL_AMD_gpu_shader_int64"));
	 fn(location1,count1,value1);
}}
#endif

#ifndef GL_AMD_interleaved_elements
#define GL_AMD_interleaved_elements
#ifndef GL_RED
#define GL_RED 0x1903
#endif //GL_RED
#ifndef GL_GREEN
#define GL_GREEN 0x1904
#endif //GL_GREEN
#ifndef GL_BLUE
#define GL_BLUE 0x1905
#endif //GL_BLUE
#ifndef GL_ALPHA
#define GL_ALPHA 0x1906
#endif //GL_ALPHA
#ifndef GL_RG8UI
#define GL_RG8UI 0x8238
#endif //GL_RG8UI
#ifndef GL_RG16UI
#define GL_RG16UI 0x823A
#endif //GL_RG16UI
#ifndef GL_RGBA8UI
#define GL_RGBA8UI 0x8D7C
#endif //GL_RGBA8UI
#ifndef GL_VERTEX_ELEMENT_SWIZZLE_AMD
#define GL_VERTEX_ELEMENT_SWIZZLE_AMD 0x91A4
#endif //GL_VERTEX_ELEMENT_SWIZZLE_AMD
#ifndef GL_VERTEX_ID_SWIZZLE_AMD
#define GL_VERTEX_ID_SWIZZLE_AMD 0x91A5
#endif //GL_VERTEX_ID_SWIZZLE_AMD
extern "C" {
}
namespace gl{

typedef void (*PFNGLVERTEXATTRIBPARAMETERIAMDPROC_HPP)(GLuint,GLenum,GLint);
static inline void VertexAttribParameteriAMD(GLuint index1,GLenum pname1,GLint param1)
{
	static PFNGLVERTEXATTRIBPARAMETERIAMDPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBPARAMETERIAMDPROC_HPP>(_impl::_get_proc_address("glVertexAttribParameteriAMD","GL_AMD_interleaved_elements"));
	 fn(index1,pname1,param1);
}}
#endif

#ifndef GL_AMD_multi_draw_indirect
#define GL_AMD_multi_draw_indirect
extern "C" {
}
namespace gl{

typedef void (*PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC_HPP)(GLenum,const void *,GLsizei,GLsizei);
static inline void MultiDrawArraysIndirectAMD(GLenum mode1,const void * indirect1,GLsizei primcount1,GLsizei stride1)
{
	static PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC_HPP fn=reinterpret_cast<PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC_HPP>(_impl::_get_proc_address("glMultiDrawArraysIndirectAMD","GL_AMD_multi_draw_indirect"));
	 fn(mode1,indirect1,primcount1,stride1);
}
typedef void (*PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC_HPP)(GLenum,GLenum,const void *,GLsizei,GLsizei);
static inline void MultiDrawElementsIndirectAMD(GLenum mode1,GLenum type1,const void * indirect1,GLsizei primcount1,GLsizei stride1)
{
	static PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC_HPP fn=reinterpret_cast<PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC_HPP>(_impl::_get_proc_address("glMultiDrawElementsIndirectAMD","GL_AMD_multi_draw_indirect"));
	 fn(mode1,type1,indirect1,primcount1,stride1);
}}
#endif

#ifndef GL_AMD_name_gen_delete
#define GL_AMD_name_gen_delete
#ifndef GL_DATA_BUFFER_AMD
#define GL_DATA_BUFFER_AMD 0x9151
#endif //GL_DATA_BUFFER_AMD
#ifndef GL_PERFORMANCE_MONITOR_AMD
#define GL_PERFORMANCE_MONITOR_AMD 0x9152
#endif //GL_PERFORMANCE_MONITOR_AMD
#ifndef GL_QUERY_OBJECT_AMD
#define GL_QUERY_OBJECT_AMD 0x9153
#endif //GL_QUERY_OBJECT_AMD
#ifndef GL_VERTEX_ARRAY_OBJECT_AMD
#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154
#endif //GL_VERTEX_ARRAY_OBJECT_AMD
#ifndef GL_SAMPLER_OBJECT_AMD
#define GL_SAMPLER_OBJECT_AMD 0x9155
#endif //GL_SAMPLER_OBJECT_AMD
extern "C" {
}
namespace gl{

typedef void (*PFNGLDELETENAMESAMDPROC_HPP)(GLenum,GLuint,const GLuint *);
static inline void DeleteNamesAMD(GLenum identifier1,GLuint num1,const GLuint * names1)
{
	static PFNGLDELETENAMESAMDPROC_HPP fn=reinterpret_cast<PFNGLDELETENAMESAMDPROC_HPP>(_impl::_get_proc_address("glDeleteNamesAMD","GL_AMD_name_gen_delete"));
	 fn(identifier1,num1,names1);
}
typedef void (*PFNGLGENNAMESAMDPROC_HPP)(GLenum,GLuint,GLuint *);
static inline void GenNamesAMD(GLenum identifier1,GLuint num1,GLuint * names1)
{
	static PFNGLGENNAMESAMDPROC_HPP fn=reinterpret_cast<PFNGLGENNAMESAMDPROC_HPP>(_impl::_get_proc_address("glGenNamesAMD","GL_AMD_name_gen_delete"));
	 fn(identifier1,num1,names1);
}
typedef GLboolean (*PFNGLISNAMEAMDPROC_HPP)(GLenum,GLuint);
static inline GLboolean IsNameAMD(GLenum identifier1,GLuint name1)
{
	static PFNGLISNAMEAMDPROC_HPP fn=reinterpret_cast<PFNGLISNAMEAMDPROC_HPP>(_impl::_get_proc_address("glIsNameAMD","GL_AMD_name_gen_delete"));
	return fn(identifier1,name1);
}}
#endif

#ifndef GL_AMD_occlusion_query_event
#define GL_AMD_occlusion_query_event
#ifndef GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD
#define GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD 0x00000001
#endif //GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD
#ifndef GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD
#define GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD 0x00000002
#endif //GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD
#ifndef GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD
#define GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD 0x00000004
#endif //GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD
#ifndef GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD
#define GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD 0x00000008
#endif //GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD
#ifndef GL_OCCLUSION_QUERY_EVENT_MASK_AMD
#define GL_OCCLUSION_QUERY_EVENT_MASK_AMD 0x874F
#endif //GL_OCCLUSION_QUERY_EVENT_MASK_AMD
#ifndef GL_QUERY_ALL_EVENT_BITS_AMD
#define GL_QUERY_ALL_EVENT_BITS_AMD 0xFFFFFFFF
#endif //GL_QUERY_ALL_EVENT_BITS_AMD
extern "C" {
}
namespace gl{

typedef void (*PFNGLQUERYOBJECTPARAMETERUIAMDPROC_HPP)(GLenum,GLuint,GLenum,GLuint);
static inline void QueryObjectParameteruiAMD(GLenum target1,GLuint id1,GLenum pname1,GLuint param1)
{
	static PFNGLQUERYOBJECTPARAMETERUIAMDPROC_HPP fn=reinterpret_cast<PFNGLQUERYOBJECTPARAMETERUIAMDPROC_HPP>(_impl::_get_proc_address("glQueryObjectParameteruiAMD","GL_AMD_occlusion_query_event"));
	 fn(target1,id1,pname1,param1);
}}
#endif

#ifndef GL_AMD_performance_monitor
#define GL_AMD_performance_monitor
#ifndef GL_COUNTER_TYPE_AMD
#define GL_COUNTER_TYPE_AMD 0x8BC0
#endif //GL_COUNTER_TYPE_AMD
#ifndef GL_COUNTER_RANGE_AMD
#define GL_COUNTER_RANGE_AMD 0x8BC1
#endif //GL_COUNTER_RANGE_AMD
#ifndef GL_UNSIGNED_INT64_AMD
#define GL_UNSIGNED_INT64_AMD 0x8BC2
#endif //GL_UNSIGNED_INT64_AMD
#ifndef GL_PERCENTAGE_AMD
#define GL_PERCENTAGE_AMD 0x8BC3
#endif //GL_PERCENTAGE_AMD
#ifndef GL_PERFMON_RESULT_AVAILABLE_AMD
#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4
#endif //GL_PERFMON_RESULT_AVAILABLE_AMD
#ifndef GL_PERFMON_RESULT_SIZE_AMD
#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5
#endif //GL_PERFMON_RESULT_SIZE_AMD
#ifndef GL_PERFMON_RESULT_AMD
#define GL_PERFMON_RESULT_AMD 0x8BC6
#endif //GL_PERFMON_RESULT_AMD
extern "C" {
}
namespace gl{

typedef void (*PFNGLBEGINPERFMONITORAMDPROC_HPP)(GLuint);
static inline void BeginPerfMonitorAMD(GLuint monitor1)
{
	static PFNGLBEGINPERFMONITORAMDPROC_HPP fn=reinterpret_cast<PFNGLBEGINPERFMONITORAMDPROC_HPP>(_impl::_get_proc_address("glBeginPerfMonitorAMD","GL_AMD_performance_monitor"));
	 fn(monitor1);
}
typedef void (*PFNGLDELETEPERFMONITORSAMDPROC_HPP)(GLsizei,GLuint *);
static inline void DeletePerfMonitorsAMD(GLsizei n1,GLuint * monitors1)
{
	static PFNGLDELETEPERFMONITORSAMDPROC_HPP fn=reinterpret_cast<PFNGLDELETEPERFMONITORSAMDPROC_HPP>(_impl::_get_proc_address("glDeletePerfMonitorsAMD","GL_AMD_performance_monitor"));
	 fn(n1,monitors1);
}
typedef void (*PFNGLENDPERFMONITORAMDPROC_HPP)(GLuint);
static inline void EndPerfMonitorAMD(GLuint monitor1)
{
	static PFNGLENDPERFMONITORAMDPROC_HPP fn=reinterpret_cast<PFNGLENDPERFMONITORAMDPROC_HPP>(_impl::_get_proc_address("glEndPerfMonitorAMD","GL_AMD_performance_monitor"));
	 fn(monitor1);
}
typedef void (*PFNGLGENPERFMONITORSAMDPROC_HPP)(GLsizei,GLuint *);
static inline void GenPerfMonitorsAMD(GLsizei n1,GLuint * monitors1)
{
	static PFNGLGENPERFMONITORSAMDPROC_HPP fn=reinterpret_cast<PFNGLGENPERFMONITORSAMDPROC_HPP>(_impl::_get_proc_address("glGenPerfMonitorsAMD","GL_AMD_performance_monitor"));
	 fn(n1,monitors1);
}
typedef void (*PFNGLGETPERFMONITORCOUNTERDATAAMDPROC_HPP)(GLuint,GLenum,GLsizei,GLuint *,GLint *);
static inline void GetPerfMonitorCounterDataAMD(GLuint monitor1,GLenum pname1,GLsizei dataSize1,GLuint * data1,GLint * bytesWritten1)
{
	static PFNGLGETPERFMONITORCOUNTERDATAAMDPROC_HPP fn=reinterpret_cast<PFNGLGETPERFMONITORCOUNTERDATAAMDPROC_HPP>(_impl::_get_proc_address("glGetPerfMonitorCounterDataAMD","GL_AMD_performance_monitor"));
	 fn(monitor1,pname1,dataSize1,data1,bytesWritten1);
}
typedef void (*PFNGLGETPERFMONITORCOUNTERINFOAMDPROC_HPP)(GLuint,GLuint,GLenum,void *);
static inline void GetPerfMonitorCounterInfoAMD(GLuint group1,GLuint counter1,GLenum pname1,void * data1)
{
	static PFNGLGETPERFMONITORCOUNTERINFOAMDPROC_HPP fn=reinterpret_cast<PFNGLGETPERFMONITORCOUNTERINFOAMDPROC_HPP>(_impl::_get_proc_address("glGetPerfMonitorCounterInfoAMD","GL_AMD_performance_monitor"));
	 fn(group1,counter1,pname1,data1);
}
typedef void (*PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC_HPP)(GLuint,GLuint,GLsizei,GLsizei *,GLchar *);
static inline void GetPerfMonitorCounterStringAMD(GLuint group1,GLuint counter1,GLsizei bufSize1,GLsizei * length1,GLchar * counterString1)
{
	static PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC_HPP fn=reinterpret_cast<PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC_HPP>(_impl::_get_proc_address("glGetPerfMonitorCounterStringAMD","GL_AMD_performance_monitor"));
	 fn(group1,counter1,bufSize1,length1,counterString1);
}
typedef void (*PFNGLGETPERFMONITORCOUNTERSAMDPROC_HPP)(GLuint,GLint *,GLint *,GLsizei,GLuint *);
static inline void GetPerfMonitorCountersAMD(GLuint group1,GLint * numCounters1,GLint * maxActiveCounters1,GLsizei counterSize1,GLuint * counters1)
{
	static PFNGLGETPERFMONITORCOUNTERSAMDPROC_HPP fn=reinterpret_cast<PFNGLGETPERFMONITORCOUNTERSAMDPROC_HPP>(_impl::_get_proc_address("glGetPerfMonitorCountersAMD","GL_AMD_performance_monitor"));
	 fn(group1,numCounters1,maxActiveCounters1,counterSize1,counters1);
}
typedef void (*PFNGLGETPERFMONITORGROUPSTRINGAMDPROC_HPP)(GLuint,GLsizei,GLsizei *,GLchar *);
static inline void GetPerfMonitorGroupStringAMD(GLuint group1,GLsizei bufSize1,GLsizei * length1,GLchar * groupString1)
{
	static PFNGLGETPERFMONITORGROUPSTRINGAMDPROC_HPP fn=reinterpret_cast<PFNGLGETPERFMONITORGROUPSTRINGAMDPROC_HPP>(_impl::_get_proc_address("glGetPerfMonitorGroupStringAMD","GL_AMD_performance_monitor"));
	 fn(group1,bufSize1,length1,groupString1);
}
typedef void (*PFNGLGETPERFMONITORGROUPSAMDPROC_HPP)(GLint *,GLsizei,GLuint *);
static inline void GetPerfMonitorGroupsAMD(GLint * numGroups1,GLsizei groupsSize1,GLuint * groups1)
{
	static PFNGLGETPERFMONITORGROUPSAMDPROC_HPP fn=reinterpret_cast<PFNGLGETPERFMONITORGROUPSAMDPROC_HPP>(_impl::_get_proc_address("glGetPerfMonitorGroupsAMD","GL_AMD_performance_monitor"));
	 fn(numGroups1,groupsSize1,groups1);
}
typedef void (*PFNGLSELECTPERFMONITORCOUNTERSAMDPROC_HPP)(GLuint,GLboolean,GLuint,GLint,GLuint *);
static inline void SelectPerfMonitorCountersAMD(GLuint monitor1,GLboolean enable1,GLuint group1,GLint numCounters1,GLuint * counterList1)
{
	static PFNGLSELECTPERFMONITORCOUNTERSAMDPROC_HPP fn=reinterpret_cast<PFNGLSELECTPERFMONITORCOUNTERSAMDPROC_HPP>(_impl::_get_proc_address("glSelectPerfMonitorCountersAMD","GL_AMD_performance_monitor"));
	 fn(monitor1,enable1,group1,numCounters1,counterList1);
}}
#endif

#ifndef GL_AMD_pinned_memory
#define GL_AMD_pinned_memory
#ifndef GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD
#define GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD 0x9160
#endif //GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_AMD_query_buffer_object
#define GL_AMD_query_buffer_object
#ifndef GL_QUERY_BUFFER_AMD
#define GL_QUERY_BUFFER_AMD 0x9192
#endif //GL_QUERY_BUFFER_AMD
#ifndef GL_QUERY_BUFFER_BINDING_AMD
#define GL_QUERY_BUFFER_BINDING_AMD 0x9193
#endif //GL_QUERY_BUFFER_BINDING_AMD
#ifndef GL_QUERY_RESULT_NO_WAIT_AMD
#define GL_QUERY_RESULT_NO_WAIT_AMD 0x9194
#endif //GL_QUERY_RESULT_NO_WAIT_AMD
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_AMD_sample_positions
#define GL_AMD_sample_positions
#ifndef GL_SUBSAMPLE_DISTANCE_AMD
#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F
#endif //GL_SUBSAMPLE_DISTANCE_AMD
extern "C" {
}
namespace gl{

typedef void (*PFNGLSETMULTISAMPLEFVAMDPROC_HPP)(GLenum,GLuint,const GLfloat *);
static inline void SetMultisamplefvAMD(GLenum pname1,GLuint index1,const GLfloat * val1)
{
	static PFNGLSETMULTISAMPLEFVAMDPROC_HPP fn=reinterpret_cast<PFNGLSETMULTISAMPLEFVAMDPROC_HPP>(_impl::_get_proc_address("glSetMultisamplefvAMD","GL_AMD_sample_positions"));
	 fn(pname1,index1,val1);
}}
#endif

#ifndef GL_AMD_seamless_cubemap_per_texture
#define GL_AMD_seamless_cubemap_per_texture
#ifndef GL_TEXTURE_CUBE_MAP_SEAMLESS
#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
#endif //GL_TEXTURE_CUBE_MAP_SEAMLESS
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_AMD_shader_atomic_counter_ops
#define GL_AMD_shader_atomic_counter_ops
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_AMD_shader_stencil_export
#define GL_AMD_shader_stencil_export
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_AMD_shader_trinary_minmax
#define GL_AMD_shader_trinary_minmax
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_AMD_sparse_texture
#define GL_AMD_sparse_texture
#ifndef GL_TEXTURE_STORAGE_SPARSE_BIT_AMD
#define GL_TEXTURE_STORAGE_SPARSE_BIT_AMD 0x00000001
#endif //GL_TEXTURE_STORAGE_SPARSE_BIT_AMD
#ifndef GL_VIRTUAL_PAGE_SIZE_X_AMD
#define GL_VIRTUAL_PAGE_SIZE_X_AMD 0x9195
#endif //GL_VIRTUAL_PAGE_SIZE_X_AMD
#ifndef GL_VIRTUAL_PAGE_SIZE_Y_AMD
#define GL_VIRTUAL_PAGE_SIZE_Y_AMD 0x9196
#endif //GL_VIRTUAL_PAGE_SIZE_Y_AMD
#ifndef GL_VIRTUAL_PAGE_SIZE_Z_AMD
#define GL_VIRTUAL_PAGE_SIZE_Z_AMD 0x9197
#endif //GL_VIRTUAL_PAGE_SIZE_Z_AMD
#ifndef GL_MAX_SPARSE_TEXTURE_SIZE_AMD
#define GL_MAX_SPARSE_TEXTURE_SIZE_AMD 0x9198
#endif //GL_MAX_SPARSE_TEXTURE_SIZE_AMD
#ifndef GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD
#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD 0x9199
#endif //GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD
#ifndef GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS
#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS 0x919A
#endif //GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS
#ifndef GL_MIN_SPARSE_LEVEL_AMD
#define GL_MIN_SPARSE_LEVEL_AMD 0x919B
#endif //GL_MIN_SPARSE_LEVEL_AMD
#ifndef GL_MIN_LOD_WARNING_AMD
#define GL_MIN_LOD_WARNING_AMD 0x919C
#endif //GL_MIN_LOD_WARNING_AMD
extern "C" {
}
namespace gl{

typedef void (*PFNGLTEXSTORAGESPARSEAMDPROC_HPP)(GLenum,GLenum,GLsizei,GLsizei,GLsizei,GLsizei,GLbitfield);
static inline void TexStorageSparseAMD(GLenum target1,GLenum internalFormat1,GLsizei width1,GLsizei height1,GLsizei depth1,GLsizei layers1,GLbitfield flags1)
{
	static PFNGLTEXSTORAGESPARSEAMDPROC_HPP fn=reinterpret_cast<PFNGLTEXSTORAGESPARSEAMDPROC_HPP>(_impl::_get_proc_address("glTexStorageSparseAMD","GL_AMD_sparse_texture"));
	 fn(target1,internalFormat1,width1,height1,depth1,layers1,flags1);
}
typedef void (*PFNGLTEXTURESTORAGESPARSEAMDPROC_HPP)(GLuint,GLenum,GLenum,GLsizei,GLsizei,GLsizei,GLsizei,GLbitfield);
static inline void TextureStorageSparseAMD(GLuint texture1,GLenum target1,GLenum internalFormat1,GLsizei width1,GLsizei height1,GLsizei depth1,GLsizei layers1,GLbitfield flags1)
{
	static PFNGLTEXTURESTORAGESPARSEAMDPROC_HPP fn=reinterpret_cast<PFNGLTEXTURESTORAGESPARSEAMDPROC_HPP>(_impl::_get_proc_address("glTextureStorageSparseAMD","GL_AMD_sparse_texture"));
	 fn(texture1,target1,internalFormat1,width1,height1,depth1,layers1,flags1);
}}
#endif

#ifndef GL_AMD_stencil_operation_extended
#define GL_AMD_stencil_operation_extended
#ifndef GL_SET_AMD
#define GL_SET_AMD 0x874A
#endif //GL_SET_AMD
#ifndef GL_REPLACE_VALUE_AMD
#define GL_REPLACE_VALUE_AMD 0x874B
#endif //GL_REPLACE_VALUE_AMD
#ifndef GL_STENCIL_OP_VALUE_AMD
#define GL_STENCIL_OP_VALUE_AMD 0x874C
#endif //GL_STENCIL_OP_VALUE_AMD
#ifndef GL_STENCIL_BACK_OP_VALUE_AMD
#define GL_STENCIL_BACK_OP_VALUE_AMD 0x874D
#endif //GL_STENCIL_BACK_OP_VALUE_AMD
extern "C" {
}
namespace gl{

typedef void (*PFNGLSTENCILOPVALUEAMDPROC_HPP)(GLenum,GLuint);
static inline void StencilOpValueAMD(GLenum face1,GLuint value1)
{
	static PFNGLSTENCILOPVALUEAMDPROC_HPP fn=reinterpret_cast<PFNGLSTENCILOPVALUEAMDPROC_HPP>(_impl::_get_proc_address("glStencilOpValueAMD","GL_AMD_stencil_operation_extended"));
	 fn(face1,value1);
}}
#endif

#ifndef GL_AMD_texture_texture4
#define GL_AMD_texture_texture4
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_AMD_transform_feedback3_lines_triangles
#define GL_AMD_transform_feedback3_lines_triangles
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_AMD_transform_feedback4
#define GL_AMD_transform_feedback4
#ifndef GL_STREAM_RASTERIZATION_AMD
#define GL_STREAM_RASTERIZATION_AMD 0x91A0
#endif //GL_STREAM_RASTERIZATION_AMD
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_AMD_vertex_shader_layer
#define GL_AMD_vertex_shader_layer
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_AMD_vertex_shader_tessellator
#define GL_AMD_vertex_shader_tessellator
#ifndef GL_SAMPLER_BUFFER_AMD
#define GL_SAMPLER_BUFFER_AMD 0x9001
#endif //GL_SAMPLER_BUFFER_AMD
#ifndef GL_INT_SAMPLER_BUFFER_AMD
#define GL_INT_SAMPLER_BUFFER_AMD 0x9002
#endif //GL_INT_SAMPLER_BUFFER_AMD
#ifndef GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD
#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003
#endif //GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD
#ifndef GL_TESSELLATION_MODE_AMD
#define GL_TESSELLATION_MODE_AMD 0x9004
#endif //GL_TESSELLATION_MODE_AMD
#ifndef GL_TESSELLATION_FACTOR_AMD
#define GL_TESSELLATION_FACTOR_AMD 0x9005
#endif //GL_TESSELLATION_FACTOR_AMD
#ifndef GL_DISCRETE_AMD
#define GL_DISCRETE_AMD 0x9006
#endif //GL_DISCRETE_AMD
#ifndef GL_CONTINUOUS_AMD
#define GL_CONTINUOUS_AMD 0x9007
#endif //GL_CONTINUOUS_AMD
extern "C" {
}
namespace gl{

typedef void (*PFNGLTESSELLATIONFACTORAMDPROC_HPP)(GLfloat);
static inline void TessellationFactorAMD(GLfloat factor1)
{
	static PFNGLTESSELLATIONFACTORAMDPROC_HPP fn=reinterpret_cast<PFNGLTESSELLATIONFACTORAMDPROC_HPP>(_impl::_get_proc_address("glTessellationFactorAMD","GL_AMD_vertex_shader_tessellator"));
	 fn(factor1);
}
typedef void (*PFNGLTESSELLATIONMODEAMDPROC_HPP)(GLenum);
static inline void TessellationModeAMD(GLenum mode1)
{
	static PFNGLTESSELLATIONMODEAMDPROC_HPP fn=reinterpret_cast<PFNGLTESSELLATIONMODEAMDPROC_HPP>(_impl::_get_proc_address("glTessellationModeAMD","GL_AMD_vertex_shader_tessellator"));
	 fn(mode1);
}}
#endif

#ifndef GL_AMD_vertex_shader_viewport_index
#define GL_AMD_vertex_shader_viewport_index
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_APPLE_aux_depth_stencil
#define GL_APPLE_aux_depth_stencil
#ifndef GL_AUX_DEPTH_STENCIL_APPLE
#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14
#endif //GL_AUX_DEPTH_STENCIL_APPLE
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_APPLE_client_storage
#define GL_APPLE_client_storage
#ifndef GL_UNPACK_CLIENT_STORAGE_APPLE
#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2
#endif //GL_UNPACK_CLIENT_STORAGE_APPLE
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_APPLE_element_array
#define GL_APPLE_element_array
#ifndef GL_ELEMENT_ARRAY_APPLE
#define GL_ELEMENT_ARRAY_APPLE 0x8A0C
#endif //GL_ELEMENT_ARRAY_APPLE
#ifndef GL_ELEMENT_ARRAY_TYPE_APPLE
#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D
#endif //GL_ELEMENT_ARRAY_TYPE_APPLE
#ifndef GL_ELEMENT_ARRAY_POINTER_APPLE
#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E
#endif //GL_ELEMENT_ARRAY_POINTER_APPLE
extern "C" {
}
namespace gl{

typedef void (*PFNGLDRAWELEMENTARRAYAPPLEPROC_HPP)(GLenum,GLint,GLsizei);
static inline void DrawElementArrayAPPLE(GLenum mode1,GLint first1,GLsizei count1)
{
	static PFNGLDRAWELEMENTARRAYAPPLEPROC_HPP fn=reinterpret_cast<PFNGLDRAWELEMENTARRAYAPPLEPROC_HPP>(_impl::_get_proc_address("glDrawElementArrayAPPLE","GL_APPLE_element_array"));
	 fn(mode1,first1,count1);
}
typedef void (*PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC_HPP)(GLenum,GLuint,GLuint,GLint,GLsizei);
static inline void DrawRangeElementArrayAPPLE(GLenum mode1,GLuint start1,GLuint end1,GLint first1,GLsizei count1)
{
	static PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC_HPP fn=reinterpret_cast<PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC_HPP>(_impl::_get_proc_address("glDrawRangeElementArrayAPPLE","GL_APPLE_element_array"));
	 fn(mode1,start1,end1,first1,count1);
}
typedef void (*PFNGLELEMENTPOINTERAPPLEPROC_HPP)(GLenum,const void *);
static inline void ElementPointerAPPLE(GLenum type1,const void * pointer1)
{
	static PFNGLELEMENTPOINTERAPPLEPROC_HPP fn=reinterpret_cast<PFNGLELEMENTPOINTERAPPLEPROC_HPP>(_impl::_get_proc_address("glElementPointerAPPLE","GL_APPLE_element_array"));
	 fn(type1,pointer1);
}
typedef void (*PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC_HPP)(GLenum,const GLint *,const GLsizei *,GLsizei);
static inline void MultiDrawElementArrayAPPLE(GLenum mode1,const GLint * first1,const GLsizei * count1,GLsizei primcount1)
{
	static PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC_HPP fn=reinterpret_cast<PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC_HPP>(_impl::_get_proc_address("glMultiDrawElementArrayAPPLE","GL_APPLE_element_array"));
	 fn(mode1,first1,count1,primcount1);
}
typedef void (*PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC_HPP)(GLenum,GLuint,GLuint,const GLint *,const GLsizei *,GLsizei);
static inline void MultiDrawRangeElementArrayAPPLE(GLenum mode1,GLuint start1,GLuint end1,const GLint * first1,const GLsizei * count1,GLsizei primcount1)
{
	static PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC_HPP fn=reinterpret_cast<PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC_HPP>(_impl::_get_proc_address("glMultiDrawRangeElementArrayAPPLE","GL_APPLE_element_array"));
	 fn(mode1,start1,end1,first1,count1,primcount1);
}}
#endif

#ifndef GL_APPLE_fence
#define GL_APPLE_fence
#ifndef GL_DRAW_PIXELS_APPLE
#define GL_DRAW_PIXELS_APPLE 0x8A0A
#endif //GL_DRAW_PIXELS_APPLE
#ifndef GL_FENCE_APPLE
#define GL_FENCE_APPLE 0x8A0B
#endif //GL_FENCE_APPLE
extern "C" {
}
namespace gl{

typedef void (*PFNGLDELETEFENCESAPPLEPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteFencesAPPLE(GLsizei n1,const GLuint * fences1)
{
	static PFNGLDELETEFENCESAPPLEPROC_HPP fn=reinterpret_cast<PFNGLDELETEFENCESAPPLEPROC_HPP>(_impl::_get_proc_address("glDeleteFencesAPPLE","GL_APPLE_fence"));
	 fn(n1,fences1);
}
typedef void (*PFNGLFINISHFENCEAPPLEPROC_HPP)(GLuint);
static inline void FinishFenceAPPLE(GLuint fence1)
{
	static PFNGLFINISHFENCEAPPLEPROC_HPP fn=reinterpret_cast<PFNGLFINISHFENCEAPPLEPROC_HPP>(_impl::_get_proc_address("glFinishFenceAPPLE","GL_APPLE_fence"));
	 fn(fence1);
}
typedef void (*PFNGLFINISHOBJECTAPPLEPROC_HPP)(GLenum,GLint);
static inline void FinishObjectAPPLE(GLenum object1,GLint name1)
{
	static PFNGLFINISHOBJECTAPPLEPROC_HPP fn=reinterpret_cast<PFNGLFINISHOBJECTAPPLEPROC_HPP>(_impl::_get_proc_address("glFinishObjectAPPLE","GL_APPLE_fence"));
	 fn(object1,name1);
}
typedef void (*PFNGLGENFENCESAPPLEPROC_HPP)(GLsizei,GLuint *);
static inline void GenFencesAPPLE(GLsizei n1,GLuint * fences1)
{
	static PFNGLGENFENCESAPPLEPROC_HPP fn=reinterpret_cast<PFNGLGENFENCESAPPLEPROC_HPP>(_impl::_get_proc_address("glGenFencesAPPLE","GL_APPLE_fence"));
	 fn(n1,fences1);
}
typedef GLboolean (*PFNGLISFENCEAPPLEPROC_HPP)(GLuint);
static inline GLboolean IsFenceAPPLE(GLuint fence1)
{
	static PFNGLISFENCEAPPLEPROC_HPP fn=reinterpret_cast<PFNGLISFENCEAPPLEPROC_HPP>(_impl::_get_proc_address("glIsFenceAPPLE","GL_APPLE_fence"));
	return fn(fence1);
}
typedef void (*PFNGLSETFENCEAPPLEPROC_HPP)(GLuint);
static inline void SetFenceAPPLE(GLuint fence1)
{
	static PFNGLSETFENCEAPPLEPROC_HPP fn=reinterpret_cast<PFNGLSETFENCEAPPLEPROC_HPP>(_impl::_get_proc_address("glSetFenceAPPLE","GL_APPLE_fence"));
	 fn(fence1);
}
typedef GLboolean (*PFNGLTESTFENCEAPPLEPROC_HPP)(GLuint);
static inline GLboolean TestFenceAPPLE(GLuint fence1)
{
	static PFNGLTESTFENCEAPPLEPROC_HPP fn=reinterpret_cast<PFNGLTESTFENCEAPPLEPROC_HPP>(_impl::_get_proc_address("glTestFenceAPPLE","GL_APPLE_fence"));
	return fn(fence1);
}
typedef GLboolean (*PFNGLTESTOBJECTAPPLEPROC_HPP)(GLenum,GLuint);
static inline GLboolean TestObjectAPPLE(GLenum object1,GLuint name1)
{
	static PFNGLTESTOBJECTAPPLEPROC_HPP fn=reinterpret_cast<PFNGLTESTOBJECTAPPLEPROC_HPP>(_impl::_get_proc_address("glTestObjectAPPLE","GL_APPLE_fence"));
	return fn(object1,name1);
}}
#endif

#ifndef GL_APPLE_float_pixels
#define GL_APPLE_float_pixels
#ifndef GL_HALF_APPLE
#define GL_HALF_APPLE 0x140B
#endif //GL_HALF_APPLE
#ifndef GL_RGBA_FLOAT32_APPLE
#define GL_RGBA_FLOAT32_APPLE 0x8814
#endif //GL_RGBA_FLOAT32_APPLE
#ifndef GL_RGB_FLOAT32_APPLE
#define GL_RGB_FLOAT32_APPLE 0x8815
#endif //GL_RGB_FLOAT32_APPLE
#ifndef GL_ALPHA_FLOAT32_APPLE
#define GL_ALPHA_FLOAT32_APPLE 0x8816
#endif //GL_ALPHA_FLOAT32_APPLE
#ifndef GL_INTENSITY_FLOAT32_APPLE
#define GL_INTENSITY_FLOAT32_APPLE 0x8817
#endif //GL_INTENSITY_FLOAT32_APPLE
#ifndef GL_LUMINANCE_FLOAT32_APPLE
#define GL_LUMINANCE_FLOAT32_APPLE 0x8818
#endif //GL_LUMINANCE_FLOAT32_APPLE
#ifndef GL_LUMINANCE_ALPHA_FLOAT32_APPLE
#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
#endif //GL_LUMINANCE_ALPHA_FLOAT32_APPLE
#ifndef GL_RGBA_FLOAT16_APPLE
#define GL_RGBA_FLOAT16_APPLE 0x881A
#endif //GL_RGBA_FLOAT16_APPLE
#ifndef GL_RGB_FLOAT16_APPLE
#define GL_RGB_FLOAT16_APPLE 0x881B
#endif //GL_RGB_FLOAT16_APPLE
#ifndef GL_ALPHA_FLOAT16_APPLE
#define GL_ALPHA_FLOAT16_APPLE 0x881C
#endif //GL_ALPHA_FLOAT16_APPLE
#ifndef GL_INTENSITY_FLOAT16_APPLE
#define GL_INTENSITY_FLOAT16_APPLE 0x881D
#endif //GL_INTENSITY_FLOAT16_APPLE
#ifndef GL_LUMINANCE_FLOAT16_APPLE
#define GL_LUMINANCE_FLOAT16_APPLE 0x881E
#endif //GL_LUMINANCE_FLOAT16_APPLE
#ifndef GL_LUMINANCE_ALPHA_FLOAT16_APPLE
#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F
#endif //GL_LUMINANCE_ALPHA_FLOAT16_APPLE
#ifndef GL_COLOR_FLOAT_APPLE
#define GL_COLOR_FLOAT_APPLE 0x8A0F
#endif //GL_COLOR_FLOAT_APPLE
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_APPLE_flush_buffer_range
#define GL_APPLE_flush_buffer_range
#ifndef GL_BUFFER_SERIALIZED_MODIFY_APPLE
#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12
#endif //GL_BUFFER_SERIALIZED_MODIFY_APPLE
#ifndef GL_BUFFER_FLUSHING_UNMAP_APPLE
#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13
#endif //GL_BUFFER_FLUSHING_UNMAP_APPLE
extern "C" {
}
namespace gl{

typedef void (*PFNGLBUFFERPARAMETERIAPPLEPROC_HPP)(GLenum,GLenum,GLint);
static inline void BufferParameteriAPPLE(GLenum target1,GLenum pname1,GLint param1)
{
	static PFNGLBUFFERPARAMETERIAPPLEPROC_HPP fn=reinterpret_cast<PFNGLBUFFERPARAMETERIAPPLEPROC_HPP>(_impl::_get_proc_address("glBufferParameteriAPPLE","GL_APPLE_flush_buffer_range"));
	 fn(target1,pname1,param1);
}
typedef void (*PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC_HPP)(GLenum,GLintptr,GLsizeiptr);
static inline void FlushMappedBufferRangeAPPLE(GLenum target1,GLintptr offset1,GLsizeiptr size1)
{
	static PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC_HPP fn=reinterpret_cast<PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC_HPP>(_impl::_get_proc_address("glFlushMappedBufferRangeAPPLE","GL_APPLE_flush_buffer_range"));
	 fn(target1,offset1,size1);
}}
#endif

#ifndef GL_APPLE_object_purgeable
#define GL_APPLE_object_purgeable
#ifndef GL_BUFFER_OBJECT_APPLE
#define GL_BUFFER_OBJECT_APPLE 0x85B3
#endif //GL_BUFFER_OBJECT_APPLE
#ifndef GL_RELEASED_APPLE
#define GL_RELEASED_APPLE 0x8A19
#endif //GL_RELEASED_APPLE
#ifndef GL_VOLATILE_APPLE
#define GL_VOLATILE_APPLE 0x8A1A
#endif //GL_VOLATILE_APPLE
#ifndef GL_RETAINED_APPLE
#define GL_RETAINED_APPLE 0x8A1B
#endif //GL_RETAINED_APPLE
#ifndef GL_UNDEFINED_APPLE
#define GL_UNDEFINED_APPLE 0x8A1C
#endif //GL_UNDEFINED_APPLE
#ifndef GL_PURGEABLE_APPLE
#define GL_PURGEABLE_APPLE 0x8A1D
#endif //GL_PURGEABLE_APPLE
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETOBJECTPARAMETERIVAPPLEPROC_HPP)(GLenum,GLuint,GLenum,GLint *);
static inline void GetObjectParameterivAPPLE(GLenum objectType1,GLuint name1,GLenum pname1,GLint * params1)
{
	static PFNGLGETOBJECTPARAMETERIVAPPLEPROC_HPP fn=reinterpret_cast<PFNGLGETOBJECTPARAMETERIVAPPLEPROC_HPP>(_impl::_get_proc_address("glGetObjectParameterivAPPLE","GL_APPLE_object_purgeable"));
	 fn(objectType1,name1,pname1,params1);
}
typedef GLenum (*PFNGLOBJECTPURGEABLEAPPLEPROC_HPP)(GLenum,GLuint,GLenum);
static inline GLenum ObjectPurgeableAPPLE(GLenum objectType1,GLuint name1,GLenum option1)
{
	static PFNGLOBJECTPURGEABLEAPPLEPROC_HPP fn=reinterpret_cast<PFNGLOBJECTPURGEABLEAPPLEPROC_HPP>(_impl::_get_proc_address("glObjectPurgeableAPPLE","GL_APPLE_object_purgeable"));
	return fn(objectType1,name1,option1);
}
typedef GLenum (*PFNGLOBJECTUNPURGEABLEAPPLEPROC_HPP)(GLenum,GLuint,GLenum);
static inline GLenum ObjectUnpurgeableAPPLE(GLenum objectType1,GLuint name1,GLenum option1)
{
	static PFNGLOBJECTUNPURGEABLEAPPLEPROC_HPP fn=reinterpret_cast<PFNGLOBJECTUNPURGEABLEAPPLEPROC_HPP>(_impl::_get_proc_address("glObjectUnpurgeableAPPLE","GL_APPLE_object_purgeable"));
	return fn(objectType1,name1,option1);
}}
#endif

#ifndef GL_APPLE_rgb_422
#define GL_APPLE_rgb_422
#ifndef GL_UNSIGNED_SHORT_8_8_APPLE
#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
#endif //GL_UNSIGNED_SHORT_8_8_APPLE
#ifndef GL_UNSIGNED_SHORT_8_8_REV_APPLE
#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
#endif //GL_UNSIGNED_SHORT_8_8_REV_APPLE
#ifndef GL_RGB_422_APPLE
#define GL_RGB_422_APPLE 0x8A1F
#endif //GL_RGB_422_APPLE
#ifndef GL_RGB_RAW_422_APPLE
#define GL_RGB_RAW_422_APPLE 0x8A51
#endif //GL_RGB_RAW_422_APPLE
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_APPLE_row_bytes
#define GL_APPLE_row_bytes
#ifndef GL_PACK_ROW_BYTES_APPLE
#define GL_PACK_ROW_BYTES_APPLE 0x8A15
#endif //GL_PACK_ROW_BYTES_APPLE
#ifndef GL_UNPACK_ROW_BYTES_APPLE
#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16
#endif //GL_UNPACK_ROW_BYTES_APPLE
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_APPLE_specular_vector
#define GL_APPLE_specular_vector
#ifndef GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE
#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0
#endif //GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_APPLE_texture_range
#define GL_APPLE_texture_range
#ifndef GL_TEXTURE_RANGE_LENGTH_APPLE
#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7
#endif //GL_TEXTURE_RANGE_LENGTH_APPLE
#ifndef GL_TEXTURE_RANGE_POINTER_APPLE
#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8
#endif //GL_TEXTURE_RANGE_POINTER_APPLE
#ifndef GL_TEXTURE_STORAGE_HINT_APPLE
#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC
#endif //GL_TEXTURE_STORAGE_HINT_APPLE
#ifndef GL_STORAGE_PRIVATE_APPLE
#define GL_STORAGE_PRIVATE_APPLE 0x85BD
#endif //GL_STORAGE_PRIVATE_APPLE
#ifndef GL_STORAGE_CACHED_APPLE
#define GL_STORAGE_CACHED_APPLE 0x85BE
#endif //GL_STORAGE_CACHED_APPLE
#ifndef GL_STORAGE_SHARED_APPLE
#define GL_STORAGE_SHARED_APPLE 0x85BF
#endif //GL_STORAGE_SHARED_APPLE
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC_HPP)(GLenum,GLenum,void **);
static inline void GetTexParameterPointervAPPLE(GLenum target1,GLenum pname1,void ** params1)
{
	static PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC_HPP fn=reinterpret_cast<PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC_HPP>(_impl::_get_proc_address("glGetTexParameterPointervAPPLE","GL_APPLE_texture_range"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLTEXTURERANGEAPPLEPROC_HPP)(GLenum,GLsizei,const void *);
static inline void TextureRangeAPPLE(GLenum target1,GLsizei length1,const void * pointer1)
{
	static PFNGLTEXTURERANGEAPPLEPROC_HPP fn=reinterpret_cast<PFNGLTEXTURERANGEAPPLEPROC_HPP>(_impl::_get_proc_address("glTextureRangeAPPLE","GL_APPLE_texture_range"));
	 fn(target1,length1,pointer1);
}}
#endif

#ifndef GL_APPLE_transform_hint
#define GL_APPLE_transform_hint
#ifndef GL_TRANSFORM_HINT_APPLE
#define GL_TRANSFORM_HINT_APPLE 0x85B1
#endif //GL_TRANSFORM_HINT_APPLE
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_APPLE_vertex_array_object
#define GL_APPLE_vertex_array_object
#ifndef GL_VERTEX_ARRAY_BINDING_APPLE
#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5
#endif //GL_VERTEX_ARRAY_BINDING_APPLE
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDVERTEXARRAYAPPLEPROC_HPP)(GLuint);
static inline void BindVertexArrayAPPLE(GLuint array1)
{
	static PFNGLBINDVERTEXARRAYAPPLEPROC_HPP fn=reinterpret_cast<PFNGLBINDVERTEXARRAYAPPLEPROC_HPP>(_impl::_get_proc_address("glBindVertexArrayAPPLE","GL_APPLE_vertex_array_object"));
	 fn(array1);
}
typedef void (*PFNGLDELETEVERTEXARRAYSAPPLEPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteVertexArraysAPPLE(GLsizei n1,const GLuint * arrays1)
{
	static PFNGLDELETEVERTEXARRAYSAPPLEPROC_HPP fn=reinterpret_cast<PFNGLDELETEVERTEXARRAYSAPPLEPROC_HPP>(_impl::_get_proc_address("glDeleteVertexArraysAPPLE","GL_APPLE_vertex_array_object"));
	 fn(n1,arrays1);
}
typedef void (*PFNGLGENVERTEXARRAYSAPPLEPROC_HPP)(GLsizei,GLuint *);
static inline void GenVertexArraysAPPLE(GLsizei n1,GLuint * arrays1)
{
	static PFNGLGENVERTEXARRAYSAPPLEPROC_HPP fn=reinterpret_cast<PFNGLGENVERTEXARRAYSAPPLEPROC_HPP>(_impl::_get_proc_address("glGenVertexArraysAPPLE","GL_APPLE_vertex_array_object"));
	 fn(n1,arrays1);
}
typedef GLboolean (*PFNGLISVERTEXARRAYAPPLEPROC_HPP)(GLuint);
static inline GLboolean IsVertexArrayAPPLE(GLuint array1)
{
	static PFNGLISVERTEXARRAYAPPLEPROC_HPP fn=reinterpret_cast<PFNGLISVERTEXARRAYAPPLEPROC_HPP>(_impl::_get_proc_address("glIsVertexArrayAPPLE","GL_APPLE_vertex_array_object"));
	return fn(array1);
}}
#endif

#ifndef GL_APPLE_vertex_array_range
#define GL_APPLE_vertex_array_range
#ifndef GL_VERTEX_ARRAY_RANGE_APPLE
#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D
#endif //GL_VERTEX_ARRAY_RANGE_APPLE
#ifndef GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE
#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E
#endif //GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE
#ifndef GL_VERTEX_ARRAY_STORAGE_HINT_APPLE
#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F
#endif //GL_VERTEX_ARRAY_STORAGE_HINT_APPLE
#ifndef GL_VERTEX_ARRAY_RANGE_POINTER_APPLE
#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521
#endif //GL_VERTEX_ARRAY_RANGE_POINTER_APPLE
#ifndef GL_STORAGE_CLIENT_APPLE
#define GL_STORAGE_CLIENT_APPLE 0x85B4
#endif //GL_STORAGE_CLIENT_APPLE
#ifndef GL_STORAGE_CACHED_APPLE
#define GL_STORAGE_CACHED_APPLE 0x85BE
#endif //GL_STORAGE_CACHED_APPLE
#ifndef GL_STORAGE_SHARED_APPLE
#define GL_STORAGE_SHARED_APPLE 0x85BF
#endif //GL_STORAGE_SHARED_APPLE
extern "C" {
}
namespace gl{

typedef void (*PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC_HPP)(GLsizei,void *);
static inline void FlushVertexArrayRangeAPPLE(GLsizei length1,void * pointer1)
{
	static PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC_HPP fn=reinterpret_cast<PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC_HPP>(_impl::_get_proc_address("glFlushVertexArrayRangeAPPLE","GL_APPLE_vertex_array_range"));
	 fn(length1,pointer1);
}
typedef void (*PFNGLVERTEXARRAYPARAMETERIAPPLEPROC_HPP)(GLenum,GLint);
static inline void VertexArrayParameteriAPPLE(GLenum pname1,GLint param1)
{
	static PFNGLVERTEXARRAYPARAMETERIAPPLEPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYPARAMETERIAPPLEPROC_HPP>(_impl::_get_proc_address("glVertexArrayParameteriAPPLE","GL_APPLE_vertex_array_range"));
	 fn(pname1,param1);
}
typedef void (*PFNGLVERTEXARRAYRANGEAPPLEPROC_HPP)(GLsizei,void *);
static inline void VertexArrayRangeAPPLE(GLsizei length1,void * pointer1)
{
	static PFNGLVERTEXARRAYRANGEAPPLEPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYRANGEAPPLEPROC_HPP>(_impl::_get_proc_address("glVertexArrayRangeAPPLE","GL_APPLE_vertex_array_range"));
	 fn(length1,pointer1);
}}
#endif

#ifndef GL_APPLE_vertex_program_evaluators
#define GL_APPLE_vertex_program_evaluators
#ifndef GL_VERTEX_ATTRIB_MAP1_APPLE
#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00
#endif //GL_VERTEX_ATTRIB_MAP1_APPLE
#ifndef GL_VERTEX_ATTRIB_MAP2_APPLE
#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01
#endif //GL_VERTEX_ATTRIB_MAP2_APPLE
#ifndef GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE
#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02
#endif //GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE
#ifndef GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE
#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03
#endif //GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE
#ifndef GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE
#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04
#endif //GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE
#ifndef GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE
#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05
#endif //GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE
#ifndef GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE
#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06
#endif //GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE
#ifndef GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE
#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07
#endif //GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE
#ifndef GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE
#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08
#endif //GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE
#ifndef GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE
#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09
#endif //GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE
extern "C" {
}
namespace gl{

typedef void (*PFNGLDISABLEVERTEXATTRIBAPPLEPROC_HPP)(GLuint,GLenum);
static inline void DisableVertexAttribAPPLE(GLuint index1,GLenum pname1)
{
	static PFNGLDISABLEVERTEXATTRIBAPPLEPROC_HPP fn=reinterpret_cast<PFNGLDISABLEVERTEXATTRIBAPPLEPROC_HPP>(_impl::_get_proc_address("glDisableVertexAttribAPPLE","GL_APPLE_vertex_program_evaluators"));
	 fn(index1,pname1);
}
typedef void (*PFNGLENABLEVERTEXATTRIBAPPLEPROC_HPP)(GLuint,GLenum);
static inline void EnableVertexAttribAPPLE(GLuint index1,GLenum pname1)
{
	static PFNGLENABLEVERTEXATTRIBAPPLEPROC_HPP fn=reinterpret_cast<PFNGLENABLEVERTEXATTRIBAPPLEPROC_HPP>(_impl::_get_proc_address("glEnableVertexAttribAPPLE","GL_APPLE_vertex_program_evaluators"));
	 fn(index1,pname1);
}
typedef GLboolean (*PFNGLISVERTEXATTRIBENABLEDAPPLEPROC_HPP)(GLuint,GLenum);
static inline GLboolean IsVertexAttribEnabledAPPLE(GLuint index1,GLenum pname1)
{
	static PFNGLISVERTEXATTRIBENABLEDAPPLEPROC_HPP fn=reinterpret_cast<PFNGLISVERTEXATTRIBENABLEDAPPLEPROC_HPP>(_impl::_get_proc_address("glIsVertexAttribEnabledAPPLE","GL_APPLE_vertex_program_evaluators"));
	return fn(index1,pname1);
}
typedef void (*PFNGLMAPVERTEXATTRIB1DAPPLEPROC_HPP)(GLuint,GLuint,GLdouble,GLdouble,GLint,GLint,const GLdouble *);
static inline void MapVertexAttrib1dAPPLE(GLuint index1,GLuint size1,GLdouble u11,GLdouble u21,GLint stride1,GLint order1,const GLdouble * points1)
{
	static PFNGLMAPVERTEXATTRIB1DAPPLEPROC_HPP fn=reinterpret_cast<PFNGLMAPVERTEXATTRIB1DAPPLEPROC_HPP>(_impl::_get_proc_address("glMapVertexAttrib1dAPPLE","GL_APPLE_vertex_program_evaluators"));
	 fn(index1,size1,u11,u21,stride1,order1,points1);
}
typedef void (*PFNGLMAPVERTEXATTRIB1FAPPLEPROC_HPP)(GLuint,GLuint,GLfloat,GLfloat,GLint,GLint,const GLfloat *);
static inline void MapVertexAttrib1fAPPLE(GLuint index1,GLuint size1,GLfloat u11,GLfloat u21,GLint stride1,GLint order1,const GLfloat * points1)
{
	static PFNGLMAPVERTEXATTRIB1FAPPLEPROC_HPP fn=reinterpret_cast<PFNGLMAPVERTEXATTRIB1FAPPLEPROC_HPP>(_impl::_get_proc_address("glMapVertexAttrib1fAPPLE","GL_APPLE_vertex_program_evaluators"));
	 fn(index1,size1,u11,u21,stride1,order1,points1);
}
typedef void (*PFNGLMAPVERTEXATTRIB2DAPPLEPROC_HPP)(GLuint,GLuint,GLdouble,GLdouble,GLint,GLint,GLdouble,GLdouble,GLint,GLint,const GLdouble *);
static inline void MapVertexAttrib2dAPPLE(GLuint index1,GLuint size1,GLdouble u11,GLdouble u21,GLint ustride1,GLint uorder1,GLdouble v11,GLdouble v21,GLint vstride1,GLint vorder1,const GLdouble * points1)
{
	static PFNGLMAPVERTEXATTRIB2DAPPLEPROC_HPP fn=reinterpret_cast<PFNGLMAPVERTEXATTRIB2DAPPLEPROC_HPP>(_impl::_get_proc_address("glMapVertexAttrib2dAPPLE","GL_APPLE_vertex_program_evaluators"));
	 fn(index1,size1,u11,u21,ustride1,uorder1,v11,v21,vstride1,vorder1,points1);
}
typedef void (*PFNGLMAPVERTEXATTRIB2FAPPLEPROC_HPP)(GLuint,GLuint,GLfloat,GLfloat,GLint,GLint,GLfloat,GLfloat,GLint,GLint,const GLfloat *);
static inline void MapVertexAttrib2fAPPLE(GLuint index1,GLuint size1,GLfloat u11,GLfloat u21,GLint ustride1,GLint uorder1,GLfloat v11,GLfloat v21,GLint vstride1,GLint vorder1,const GLfloat * points1)
{
	static PFNGLMAPVERTEXATTRIB2FAPPLEPROC_HPP fn=reinterpret_cast<PFNGLMAPVERTEXATTRIB2FAPPLEPROC_HPP>(_impl::_get_proc_address("glMapVertexAttrib2fAPPLE","GL_APPLE_vertex_program_evaluators"));
	 fn(index1,size1,u11,u21,ustride1,uorder1,v11,v21,vstride1,vorder1,points1);
}}
#endif

#ifndef GL_APPLE_ycbcr_422
#define GL_APPLE_ycbcr_422
#ifndef GL_YCBCR_422_APPLE
#define GL_YCBCR_422_APPLE 0x85B9
#endif //GL_YCBCR_422_APPLE
#ifndef GL_UNSIGNED_SHORT_8_8_APPLE
#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
#endif //GL_UNSIGNED_SHORT_8_8_APPLE
#ifndef GL_UNSIGNED_SHORT_8_8_REV_APPLE
#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
#endif //GL_UNSIGNED_SHORT_8_8_REV_APPLE
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_ES2_compatibility
#define GL_ARB_ES2_compatibility
#ifndef GL_FIXED
#define GL_FIXED 0x140C
#endif //GL_FIXED
#ifndef GL_IMPLEMENTATION_COLOR_READ_TYPE
#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
#endif //GL_IMPLEMENTATION_COLOR_READ_TYPE
#ifndef GL_IMPLEMENTATION_COLOR_READ_FORMAT
#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
#endif //GL_IMPLEMENTATION_COLOR_READ_FORMAT
#ifndef GL_RGB565
#define GL_RGB565 0x8D62
#endif //GL_RGB565
#ifndef GL_LOW_FLOAT
#define GL_LOW_FLOAT 0x8DF0
#endif //GL_LOW_FLOAT
#ifndef GL_MEDIUM_FLOAT
#define GL_MEDIUM_FLOAT 0x8DF1
#endif //GL_MEDIUM_FLOAT
#ifndef GL_HIGH_FLOAT
#define GL_HIGH_FLOAT 0x8DF2
#endif //GL_HIGH_FLOAT
#ifndef GL_LOW_INT
#define GL_LOW_INT 0x8DF3
#endif //GL_LOW_INT
#ifndef GL_MEDIUM_INT
#define GL_MEDIUM_INT 0x8DF4
#endif //GL_MEDIUM_INT
#ifndef GL_HIGH_INT
#define GL_HIGH_INT 0x8DF5
#endif //GL_HIGH_INT
#ifndef GL_SHADER_BINARY_FORMATS
#define GL_SHADER_BINARY_FORMATS 0x8DF8
#endif //GL_SHADER_BINARY_FORMATS
#ifndef GL_NUM_SHADER_BINARY_FORMATS
#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
#endif //GL_NUM_SHADER_BINARY_FORMATS
#ifndef GL_SHADER_COMPILER
#define GL_SHADER_COMPILER 0x8DFA
#endif //GL_SHADER_COMPILER
#ifndef GL_MAX_VERTEX_UNIFORM_VECTORS
#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
#endif //GL_MAX_VERTEX_UNIFORM_VECTORS
#ifndef GL_MAX_VARYING_VECTORS
#define GL_MAX_VARYING_VECTORS 0x8DFC
#endif //GL_MAX_VARYING_VECTORS
#ifndef GL_MAX_FRAGMENT_UNIFORM_VECTORS
#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
#endif //GL_MAX_FRAGMENT_UNIFORM_VECTORS
extern "C" {
}
namespace gl{

typedef void (*PFNGLCLEARDEPTHFPROC_HPP)(GLfloat);
static inline void ClearDepthf(GLfloat d1)
{
	static PFNGLCLEARDEPTHFPROC_HPP fn=reinterpret_cast<PFNGLCLEARDEPTHFPROC_HPP>(_impl::_get_proc_address("glClearDepthf","GL_ARB_ES2_compatibility"));
	 fn(d1);
}
typedef void (*PFNGLDEPTHRANGEFPROC_HPP)(GLfloat,GLfloat);
static inline void DepthRangef(GLfloat n1,GLfloat f1)
{
	static PFNGLDEPTHRANGEFPROC_HPP fn=reinterpret_cast<PFNGLDEPTHRANGEFPROC_HPP>(_impl::_get_proc_address("glDepthRangef","GL_ARB_ES2_compatibility"));
	 fn(n1,f1);
}
typedef void (*PFNGLGETSHADERPRECISIONFORMATPROC_HPP)(GLenum,GLenum,GLint *,GLint *);
static inline void GetShaderPrecisionFormat(GLenum shadertype1,GLenum precisiontype1,GLint * range1,GLint * precision1)
{
	static PFNGLGETSHADERPRECISIONFORMATPROC_HPP fn=reinterpret_cast<PFNGLGETSHADERPRECISIONFORMATPROC_HPP>(_impl::_get_proc_address("glGetShaderPrecisionFormat","GL_ARB_ES2_compatibility"));
	 fn(shadertype1,precisiontype1,range1,precision1);
}
typedef void (*PFNGLRELEASESHADERCOMPILERPROC_HPP)();
static inline void ReleaseShaderCompiler()
{
	static PFNGLRELEASESHADERCOMPILERPROC_HPP fn=reinterpret_cast<PFNGLRELEASESHADERCOMPILERPROC_HPP>(_impl::_get_proc_address("glReleaseShaderCompiler","GL_ARB_ES2_compatibility"));
	 fn();
}
typedef void (*PFNGLSHADERBINARYPROC_HPP)(GLsizei,const GLuint *,GLenum,const void *,GLsizei);
static inline void ShaderBinary(GLsizei count1,const GLuint * shaders1,GLenum binaryformat1,const void * binary1,GLsizei length1)
{
	static PFNGLSHADERBINARYPROC_HPP fn=reinterpret_cast<PFNGLSHADERBINARYPROC_HPP>(_impl::_get_proc_address("glShaderBinary","GL_ARB_ES2_compatibility"));
	 fn(count1,shaders1,binaryformat1,binary1,length1);
}}
#endif

#ifndef GL_ARB_ES3_1_compatibility
#define GL_ARB_ES3_1_compatibility
extern "C" {
}
namespace gl{

typedef void (*PFNGLMEMORYBARRIERBYREGIONPROC_HPP)(GLbitfield);
static inline void MemoryBarrierByRegion(GLbitfield barriers1)
{
	static PFNGLMEMORYBARRIERBYREGIONPROC_HPP fn=reinterpret_cast<PFNGLMEMORYBARRIERBYREGIONPROC_HPP>(_impl::_get_proc_address("glMemoryBarrierByRegion","GL_ARB_ES3_1_compatibility"));
	 fn(barriers1);
}}
#endif

#ifndef GL_ARB_ES3_compatibility
#define GL_ARB_ES3_compatibility
#ifndef GL_PRIMITIVE_RESTART_FIXED_INDEX
#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69
#endif //GL_PRIMITIVE_RESTART_FIXED_INDEX
#ifndef GL_ANY_SAMPLES_PASSED_CONSERVATIVE
#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A
#endif //GL_ANY_SAMPLES_PASSED_CONSERVATIVE
#ifndef GL_MAX_ELEMENT_INDEX
#define GL_MAX_ELEMENT_INDEX 0x8D6B
#endif //GL_MAX_ELEMENT_INDEX
#ifndef GL_COMPRESSED_R11_EAC
#define GL_COMPRESSED_R11_EAC 0x9270
#endif //GL_COMPRESSED_R11_EAC
#ifndef GL_COMPRESSED_SIGNED_R11_EAC
#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271
#endif //GL_COMPRESSED_SIGNED_R11_EAC
#ifndef GL_COMPRESSED_RG11_EAC
#define GL_COMPRESSED_RG11_EAC 0x9272
#endif //GL_COMPRESSED_RG11_EAC
#ifndef GL_COMPRESSED_SIGNED_RG11_EAC
#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273
#endif //GL_COMPRESSED_SIGNED_RG11_EAC
#ifndef GL_COMPRESSED_RGB8_ETC2
#define GL_COMPRESSED_RGB8_ETC2 0x9274
#endif //GL_COMPRESSED_RGB8_ETC2
#ifndef GL_COMPRESSED_SRGB8_ETC2
#define GL_COMPRESSED_SRGB8_ETC2 0x9275
#endif //GL_COMPRESSED_SRGB8_ETC2
#ifndef GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276
#endif //GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
#ifndef GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277
#endif //GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
#ifndef GL_COMPRESSED_RGBA8_ETC2_EAC
#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278
#endif //GL_COMPRESSED_RGBA8_ETC2_EAC
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_arrays_of_arrays
#define GL_ARB_arrays_of_arrays
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_base_instance
#define GL_ARB_base_instance
extern "C" {
}
namespace gl{

typedef void (*PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC_HPP)(GLenum,GLint,GLsizei,GLsizei,GLuint);
static inline void DrawArraysInstancedBaseInstance(GLenum mode1,GLint first1,GLsizei count1,GLsizei instancecount1,GLuint baseinstance1)
{
	static PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC_HPP fn=reinterpret_cast<PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC_HPP>(_impl::_get_proc_address("glDrawArraysInstancedBaseInstance","GL_ARB_base_instance"));
	 fn(mode1,first1,count1,instancecount1,baseinstance1);
}
typedef void (*PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC_HPP)(GLenum,GLsizei,GLenum,const void *,GLsizei,GLuint);
static inline void DrawElementsInstancedBaseInstance(GLenum mode1,GLsizei count1,GLenum type1,const void * indices1,GLsizei instancecount1,GLuint baseinstance1)
{
	static PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC_HPP fn=reinterpret_cast<PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC_HPP>(_impl::_get_proc_address("glDrawElementsInstancedBaseInstance","GL_ARB_base_instance"));
	 fn(mode1,count1,type1,indices1,instancecount1,baseinstance1);
}
typedef void (*PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC_HPP)(GLenum,GLsizei,GLenum,const void *,GLsizei,GLint,GLuint);
static inline void DrawElementsInstancedBaseVertexBaseInstance(GLenum mode1,GLsizei count1,GLenum type1,const void * indices1,GLsizei instancecount1,GLint basevertex1,GLuint baseinstance1)
{
	static PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC_HPP fn=reinterpret_cast<PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC_HPP>(_impl::_get_proc_address("glDrawElementsInstancedBaseVertexBaseInstance","GL_ARB_base_instance"));
	 fn(mode1,count1,type1,indices1,instancecount1,basevertex1,baseinstance1);
}}
#endif

#ifndef GL_ARB_bindless_texture
#define GL_ARB_bindless_texture
#ifndef GL_UNSIGNED_INT64_ARB
#define GL_UNSIGNED_INT64_ARB 0x140F
#endif //GL_UNSIGNED_INT64_ARB
extern "C" {
}
namespace gl{

typedef GLuint64 (*PFNGLGETIMAGEHANDLEARBPROC_HPP)(GLuint,GLint,GLboolean,GLint,GLenum);
static inline GLuint64 GetImageHandleARB(GLuint texture1,GLint level1,GLboolean layered1,GLint layer1,GLenum format1)
{
	static PFNGLGETIMAGEHANDLEARBPROC_HPP fn=reinterpret_cast<PFNGLGETIMAGEHANDLEARBPROC_HPP>(_impl::_get_proc_address("glGetImageHandleARB","GL_ARB_bindless_texture"));
	return fn(texture1,level1,layered1,layer1,format1);
}
typedef GLuint64 (*PFNGLGETTEXTUREHANDLEARBPROC_HPP)(GLuint);
static inline GLuint64 GetTextureHandleARB(GLuint texture1)
{
	static PFNGLGETTEXTUREHANDLEARBPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTUREHANDLEARBPROC_HPP>(_impl::_get_proc_address("glGetTextureHandleARB","GL_ARB_bindless_texture"));
	return fn(texture1);
}
typedef GLuint64 (*PFNGLGETTEXTURESAMPLERHANDLEARBPROC_HPP)(GLuint,GLuint);
static inline GLuint64 GetTextureSamplerHandleARB(GLuint texture1,GLuint sampler1)
{
	static PFNGLGETTEXTURESAMPLERHANDLEARBPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTURESAMPLERHANDLEARBPROC_HPP>(_impl::_get_proc_address("glGetTextureSamplerHandleARB","GL_ARB_bindless_texture"));
	return fn(texture1,sampler1);
}
typedef void (*PFNGLGETVERTEXATTRIBLUI64VARBPROC_HPP)(GLuint,GLenum,GLuint64EXT *);
static inline void GetVertexAttribLui64vARB(GLuint index1,GLenum pname1,GLuint64EXT * params1)
{
	static PFNGLGETVERTEXATTRIBLUI64VARBPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBLUI64VARBPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribLui64vARB","GL_ARB_bindless_texture"));
	 fn(index1,pname1,params1);
}
typedef GLboolean (*PFNGLISIMAGEHANDLERESIDENTARBPROC_HPP)(GLuint64);
static inline GLboolean IsImageHandleResidentARB(GLuint64 handle1)
{
	static PFNGLISIMAGEHANDLERESIDENTARBPROC_HPP fn=reinterpret_cast<PFNGLISIMAGEHANDLERESIDENTARBPROC_HPP>(_impl::_get_proc_address("glIsImageHandleResidentARB","GL_ARB_bindless_texture"));
	return fn(handle1);
}
typedef GLboolean (*PFNGLISTEXTUREHANDLERESIDENTARBPROC_HPP)(GLuint64);
static inline GLboolean IsTextureHandleResidentARB(GLuint64 handle1)
{
	static PFNGLISTEXTUREHANDLERESIDENTARBPROC_HPP fn=reinterpret_cast<PFNGLISTEXTUREHANDLERESIDENTARBPROC_HPP>(_impl::_get_proc_address("glIsTextureHandleResidentARB","GL_ARB_bindless_texture"));
	return fn(handle1);
}
typedef void (*PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC_HPP)(GLuint64);
static inline void MakeImageHandleNonResidentARB(GLuint64 handle1)
{
	static PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC_HPP fn=reinterpret_cast<PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC_HPP>(_impl::_get_proc_address("glMakeImageHandleNonResidentARB","GL_ARB_bindless_texture"));
	 fn(handle1);
}
typedef void (*PFNGLMAKEIMAGEHANDLERESIDENTARBPROC_HPP)(GLuint64,GLenum);
static inline void MakeImageHandleResidentARB(GLuint64 handle1,GLenum access1)
{
	static PFNGLMAKEIMAGEHANDLERESIDENTARBPROC_HPP fn=reinterpret_cast<PFNGLMAKEIMAGEHANDLERESIDENTARBPROC_HPP>(_impl::_get_proc_address("glMakeImageHandleResidentARB","GL_ARB_bindless_texture"));
	 fn(handle1,access1);
}
typedef void (*PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC_HPP)(GLuint64);
static inline void MakeTextureHandleNonResidentARB(GLuint64 handle1)
{
	static PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC_HPP fn=reinterpret_cast<PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC_HPP>(_impl::_get_proc_address("glMakeTextureHandleNonResidentARB","GL_ARB_bindless_texture"));
	 fn(handle1);
}
typedef void (*PFNGLMAKETEXTUREHANDLERESIDENTARBPROC_HPP)(GLuint64);
static inline void MakeTextureHandleResidentARB(GLuint64 handle1)
{
	static PFNGLMAKETEXTUREHANDLERESIDENTARBPROC_HPP fn=reinterpret_cast<PFNGLMAKETEXTUREHANDLERESIDENTARBPROC_HPP>(_impl::_get_proc_address("glMakeTextureHandleResidentARB","GL_ARB_bindless_texture"));
	 fn(handle1);
}
typedef void (*PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC_HPP)(GLuint,GLint,GLuint64);
static inline void ProgramUniformHandleui64ARB(GLuint program1,GLint location1,GLuint64 value1)
{
	static PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC_HPP>(_impl::_get_proc_address("glProgramUniformHandleui64ARB","GL_ARB_bindless_texture"));
	 fn(program1,location1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC_HPP)(GLuint,GLint,GLsizei,const GLuint64 *);
static inline void ProgramUniformHandleui64vARB(GLuint program1,GLint location1,GLsizei count1,const GLuint64 * values1)
{
	static PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC_HPP>(_impl::_get_proc_address("glProgramUniformHandleui64vARB","GL_ARB_bindless_texture"));
	 fn(program1,location1,count1,values1);
}
typedef void (*PFNGLUNIFORMHANDLEUI64ARBPROC_HPP)(GLint,GLuint64);
static inline void UniformHandleui64ARB(GLint location1,GLuint64 value1)
{
	static PFNGLUNIFORMHANDLEUI64ARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMHANDLEUI64ARBPROC_HPP>(_impl::_get_proc_address("glUniformHandleui64ARB","GL_ARB_bindless_texture"));
	 fn(location1,value1);
}
typedef void (*PFNGLUNIFORMHANDLEUI64VARBPROC_HPP)(GLint,GLsizei,const GLuint64 *);
static inline void UniformHandleui64vARB(GLint location1,GLsizei count1,const GLuint64 * value1)
{
	static PFNGLUNIFORMHANDLEUI64VARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMHANDLEUI64VARBPROC_HPP>(_impl::_get_proc_address("glUniformHandleui64vARB","GL_ARB_bindless_texture"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLVERTEXATTRIBL1UI64ARBPROC_HPP)(GLuint,GLuint64EXT);
static inline void VertexAttribL1ui64ARB(GLuint index1,GLuint64EXT x1)
{
	static PFNGLVERTEXATTRIBL1UI64ARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL1UI64ARBPROC_HPP>(_impl::_get_proc_address("glVertexAttribL1ui64ARB","GL_ARB_bindless_texture"));
	 fn(index1,x1);
}
typedef void (*PFNGLVERTEXATTRIBL1UI64VARBPROC_HPP)(GLuint,const GLuint64EXT *);
static inline void VertexAttribL1ui64vARB(GLuint index1,const GLuint64EXT * v1)
{
	static PFNGLVERTEXATTRIBL1UI64VARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL1UI64VARBPROC_HPP>(_impl::_get_proc_address("glVertexAttribL1ui64vARB","GL_ARB_bindless_texture"));
	 fn(index1,v1);
}}
#endif

#ifndef GL_ARB_blend_func_extended
#define GL_ARB_blend_func_extended
#ifndef GL_SRC1_ALPHA
#define GL_SRC1_ALPHA 0x8589
#endif //GL_SRC1_ALPHA
#ifndef GL_SRC1_COLOR
#define GL_SRC1_COLOR 0x88F9
#endif //GL_SRC1_COLOR
#ifndef GL_ONE_MINUS_SRC1_COLOR
#define GL_ONE_MINUS_SRC1_COLOR 0x88FA
#endif //GL_ONE_MINUS_SRC1_COLOR
#ifndef GL_ONE_MINUS_SRC1_ALPHA
#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB
#endif //GL_ONE_MINUS_SRC1_ALPHA
#ifndef GL_MAX_DUAL_SOURCE_DRAW_BUFFERS
#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC
#endif //GL_MAX_DUAL_SOURCE_DRAW_BUFFERS
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDFRAGDATALOCATIONINDEXEDPROC_HPP)(GLuint,GLuint,GLuint,const GLchar *);
static inline void BindFragDataLocationIndexed(GLuint program1,GLuint colorNumber1,GLuint index1,const GLchar * name1)
{
	static PFNGLBINDFRAGDATALOCATIONINDEXEDPROC_HPP fn=reinterpret_cast<PFNGLBINDFRAGDATALOCATIONINDEXEDPROC_HPP>(_impl::_get_proc_address("glBindFragDataLocationIndexed","GL_ARB_blend_func_extended"));
	 fn(program1,colorNumber1,index1,name1);
}
typedef GLint (*PFNGLGETFRAGDATAINDEXPROC_HPP)(GLuint,const GLchar *);
static inline GLint GetFragDataIndex(GLuint program1,const GLchar * name1)
{
	static PFNGLGETFRAGDATAINDEXPROC_HPP fn=reinterpret_cast<PFNGLGETFRAGDATAINDEXPROC_HPP>(_impl::_get_proc_address("glGetFragDataIndex","GL_ARB_blend_func_extended"));
	return fn(program1,name1);
}}
#endif

#ifndef GL_ARB_buffer_storage
#define GL_ARB_buffer_storage
#ifndef GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT
#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000
#endif //GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT
#ifndef GL_MAP_READ_BIT
#define GL_MAP_READ_BIT 0x0001
#endif //GL_MAP_READ_BIT
#ifndef GL_MAP_WRITE_BIT
#define GL_MAP_WRITE_BIT 0x0002
#endif //GL_MAP_WRITE_BIT
#ifndef GL_MAP_PERSISTENT_BIT
#define GL_MAP_PERSISTENT_BIT 0x0040
#endif //GL_MAP_PERSISTENT_BIT
#ifndef GL_MAP_COHERENT_BIT
#define GL_MAP_COHERENT_BIT 0x0080
#endif //GL_MAP_COHERENT_BIT
#ifndef GL_DYNAMIC_STORAGE_BIT
#define GL_DYNAMIC_STORAGE_BIT 0x0100
#endif //GL_DYNAMIC_STORAGE_BIT
#ifndef GL_CLIENT_STORAGE_BIT
#define GL_CLIENT_STORAGE_BIT 0x0200
#endif //GL_CLIENT_STORAGE_BIT
#ifndef GL_BUFFER_IMMUTABLE_STORAGE
#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F
#endif //GL_BUFFER_IMMUTABLE_STORAGE
#ifndef GL_BUFFER_STORAGE_FLAGS
#define GL_BUFFER_STORAGE_FLAGS 0x8220
#endif //GL_BUFFER_STORAGE_FLAGS
extern "C" {
}
namespace gl{

typedef void (*PFNGLBUFFERSTORAGEPROC_HPP)(GLenum,GLsizeiptr,const void *,GLbitfield);
static inline void BufferStorage(GLenum target1,GLsizeiptr size1,const void * data1,GLbitfield flags1)
{
	static PFNGLBUFFERSTORAGEPROC_HPP fn=reinterpret_cast<PFNGLBUFFERSTORAGEPROC_HPP>(_impl::_get_proc_address("glBufferStorage","GL_ARB_buffer_storage"));
	 fn(target1,size1,data1,flags1);
}}
#endif

#ifndef GL_ARB_cl_event
#define GL_ARB_cl_event
#ifndef GL_SYNC_CL_EVENT_ARB
#define GL_SYNC_CL_EVENT_ARB 0x8240
#endif //GL_SYNC_CL_EVENT_ARB
#ifndef GL_SYNC_CL_EVENT_COMPLETE_ARB
#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241
#endif //GL_SYNC_CL_EVENT_COMPLETE_ARB
extern "C" {
}
namespace gl{

typedef GLsync (*PFNGLCREATESYNCFROMCLEVENTARBPROC_HPP)(struct _cl_context *,struct _cl_event *,GLbitfield);
static inline GLsync CreateSyncFromCLeventARB(struct _cl_context * context1,struct _cl_event * event1,GLbitfield flags1)
{
	static PFNGLCREATESYNCFROMCLEVENTARBPROC_HPP fn=reinterpret_cast<PFNGLCREATESYNCFROMCLEVENTARBPROC_HPP>(_impl::_get_proc_address("glCreateSyncFromCLeventARB","GL_ARB_cl_event"));
	return fn(context1,event1,flags1);
}}
#endif

#ifndef GL_ARB_clear_buffer_object
#define GL_ARB_clear_buffer_object
extern "C" {
}
namespace gl{

typedef void (*PFNGLCLEARBUFFERDATAPROC_HPP)(GLenum,GLenum,GLenum,GLenum,const void *);
static inline void ClearBufferData(GLenum target1,GLenum internalformat1,GLenum format1,GLenum type1,const void * data1)
{
	static PFNGLCLEARBUFFERDATAPROC_HPP fn=reinterpret_cast<PFNGLCLEARBUFFERDATAPROC_HPP>(_impl::_get_proc_address("glClearBufferData","GL_ARB_clear_buffer_object"));
	 fn(target1,internalformat1,format1,type1,data1);
}
typedef void (*PFNGLCLEARBUFFERSUBDATAPROC_HPP)(GLenum,GLenum,GLintptr,GLsizeiptr,GLenum,GLenum,const void *);
static inline void ClearBufferSubData(GLenum target1,GLenum internalformat1,GLintptr offset1,GLsizeiptr size1,GLenum format1,GLenum type1,const void * data1)
{
	static PFNGLCLEARBUFFERSUBDATAPROC_HPP fn=reinterpret_cast<PFNGLCLEARBUFFERSUBDATAPROC_HPP>(_impl::_get_proc_address("glClearBufferSubData","GL_ARB_clear_buffer_object"));
	 fn(target1,internalformat1,offset1,size1,format1,type1,data1);
}}
#endif

#ifndef GL_ARB_clear_texture
#define GL_ARB_clear_texture
#ifndef GL_CLEAR_TEXTURE
#define GL_CLEAR_TEXTURE 0x9365
#endif //GL_CLEAR_TEXTURE
extern "C" {
}
namespace gl{

typedef void (*PFNGLCLEARTEXIMAGEPROC_HPP)(GLuint,GLint,GLenum,GLenum,const void *);
static inline void ClearTexImage(GLuint texture1,GLint level1,GLenum format1,GLenum type1,const void * data1)
{
	static PFNGLCLEARTEXIMAGEPROC_HPP fn=reinterpret_cast<PFNGLCLEARTEXIMAGEPROC_HPP>(_impl::_get_proc_address("glClearTexImage","GL_ARB_clear_texture"));
	 fn(texture1,level1,format1,type1,data1);
}
typedef void (*PFNGLCLEARTEXSUBIMAGEPROC_HPP)(GLuint,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLenum,const void *);
static inline void ClearTexSubImage(GLuint texture1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLsizei width1,GLsizei height1,GLsizei depth1,GLenum format1,GLenum type1,const void * data1)
{
	static PFNGLCLEARTEXSUBIMAGEPROC_HPP fn=reinterpret_cast<PFNGLCLEARTEXSUBIMAGEPROC_HPP>(_impl::_get_proc_address("glClearTexSubImage","GL_ARB_clear_texture"));
	 fn(texture1,level1,xoffset1,yoffset1,zoffset1,width1,height1,depth1,format1,type1,data1);
}}
#endif

#ifndef GL_ARB_clip_control
#define GL_ARB_clip_control
#ifndef GL_LOWER_LEFT
#define GL_LOWER_LEFT 0x8CA1
#endif //GL_LOWER_LEFT
#ifndef GL_UPPER_LEFT
#define GL_UPPER_LEFT 0x8CA2
#endif //GL_UPPER_LEFT
#ifndef GL_CLIP_ORIGIN
#define GL_CLIP_ORIGIN 0x935C
#endif //GL_CLIP_ORIGIN
#ifndef GL_CLIP_DEPTH_MODE
#define GL_CLIP_DEPTH_MODE 0x935D
#endif //GL_CLIP_DEPTH_MODE
#ifndef GL_NEGATIVE_ONE_TO_ONE
#define GL_NEGATIVE_ONE_TO_ONE 0x935E
#endif //GL_NEGATIVE_ONE_TO_ONE
#ifndef GL_ZERO_TO_ONE
#define GL_ZERO_TO_ONE 0x935F
#endif //GL_ZERO_TO_ONE
extern "C" {
}
namespace gl{

typedef void (*PFNGLCLIPCONTROLPROC_HPP)(GLenum,GLenum);
static inline void ClipControl(GLenum origin1,GLenum depth1)
{
	static PFNGLCLIPCONTROLPROC_HPP fn=reinterpret_cast<PFNGLCLIPCONTROLPROC_HPP>(_impl::_get_proc_address("glClipControl","GL_ARB_clip_control"));
	 fn(origin1,depth1);
}}
#endif

#ifndef GL_ARB_color_buffer_float
#define GL_ARB_color_buffer_float
#ifndef GL_RGBA_FLOAT_MODE_ARB
#define GL_RGBA_FLOAT_MODE_ARB 0x8820
#endif //GL_RGBA_FLOAT_MODE_ARB
#ifndef GL_CLAMP_VERTEX_COLOR_ARB
#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A
#endif //GL_CLAMP_VERTEX_COLOR_ARB
#ifndef GL_CLAMP_FRAGMENT_COLOR_ARB
#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B
#endif //GL_CLAMP_FRAGMENT_COLOR_ARB
#ifndef GL_CLAMP_READ_COLOR_ARB
#define GL_CLAMP_READ_COLOR_ARB 0x891C
#endif //GL_CLAMP_READ_COLOR_ARB
#ifndef GL_FIXED_ONLY_ARB
#define GL_FIXED_ONLY_ARB 0x891D
#endif //GL_FIXED_ONLY_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLCLAMPCOLORARBPROC_HPP)(GLenum,GLenum);
static inline void ClampColorARB(GLenum target1,GLenum clamp1)
{
	static PFNGLCLAMPCOLORARBPROC_HPP fn=reinterpret_cast<PFNGLCLAMPCOLORARBPROC_HPP>(_impl::_get_proc_address("glClampColorARB","GL_ARB_color_buffer_float"));
	 fn(target1,clamp1);
}}
#endif

#ifndef GL_ARB_compatibility
#define GL_ARB_compatibility
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_compressed_texture_pixel_storage
#define GL_ARB_compressed_texture_pixel_storage
#ifndef GL_UNPACK_COMPRESSED_BLOCK_WIDTH
#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127
#endif //GL_UNPACK_COMPRESSED_BLOCK_WIDTH
#ifndef GL_UNPACK_COMPRESSED_BLOCK_HEIGHT
#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128
#endif //GL_UNPACK_COMPRESSED_BLOCK_HEIGHT
#ifndef GL_UNPACK_COMPRESSED_BLOCK_DEPTH
#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129
#endif //GL_UNPACK_COMPRESSED_BLOCK_DEPTH
#ifndef GL_UNPACK_COMPRESSED_BLOCK_SIZE
#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A
#endif //GL_UNPACK_COMPRESSED_BLOCK_SIZE
#ifndef GL_PACK_COMPRESSED_BLOCK_WIDTH
#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B
#endif //GL_PACK_COMPRESSED_BLOCK_WIDTH
#ifndef GL_PACK_COMPRESSED_BLOCK_HEIGHT
#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C
#endif //GL_PACK_COMPRESSED_BLOCK_HEIGHT
#ifndef GL_PACK_COMPRESSED_BLOCK_DEPTH
#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D
#endif //GL_PACK_COMPRESSED_BLOCK_DEPTH
#ifndef GL_PACK_COMPRESSED_BLOCK_SIZE
#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E
#endif //GL_PACK_COMPRESSED_BLOCK_SIZE
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_compute_shader
#define GL_ARB_compute_shader
#ifndef GL_COMPUTE_SHADER_BIT
#define GL_COMPUTE_SHADER_BIT 0x00000020
#endif //GL_COMPUTE_SHADER_BIT
#ifndef GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262
#endif //GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
#ifndef GL_MAX_COMPUTE_UNIFORM_COMPONENTS
#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263
#endif //GL_MAX_COMPUTE_UNIFORM_COMPONENTS
#ifndef GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS
#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264
#endif //GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS
#ifndef GL_MAX_COMPUTE_ATOMIC_COUNTERS
#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265
#endif //GL_MAX_COMPUTE_ATOMIC_COUNTERS
#ifndef GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS
#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266
#endif //GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS
#ifndef GL_COMPUTE_WORK_GROUP_SIZE
#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267
#endif //GL_COMPUTE_WORK_GROUP_SIZE
#ifndef GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS
#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB
#endif //GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS
#ifndef GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER
#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC
#endif //GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER
#ifndef GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER
#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED
#endif //GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER
#ifndef GL_DISPATCH_INDIRECT_BUFFER
#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE
#endif //GL_DISPATCH_INDIRECT_BUFFER
#ifndef GL_DISPATCH_INDIRECT_BUFFER_BINDING
#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF
#endif //GL_DISPATCH_INDIRECT_BUFFER_BINDING
#ifndef GL_COMPUTE_SHADER
#define GL_COMPUTE_SHADER 0x91B9
#endif //GL_COMPUTE_SHADER
#ifndef GL_MAX_COMPUTE_UNIFORM_BLOCKS
#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB
#endif //GL_MAX_COMPUTE_UNIFORM_BLOCKS
#ifndef GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS
#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC
#endif //GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS
#ifndef GL_MAX_COMPUTE_IMAGE_UNIFORMS
#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD
#endif //GL_MAX_COMPUTE_IMAGE_UNIFORMS
#ifndef GL_MAX_COMPUTE_WORK_GROUP_COUNT
#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE
#endif //GL_MAX_COMPUTE_WORK_GROUP_COUNT
#ifndef GL_MAX_COMPUTE_WORK_GROUP_SIZE
#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF
#endif //GL_MAX_COMPUTE_WORK_GROUP_SIZE
extern "C" {
}
namespace gl{

typedef void (*PFNGLDISPATCHCOMPUTEPROC_HPP)(GLuint,GLuint,GLuint);
static inline void DispatchCompute(GLuint num_groups_x1,GLuint num_groups_y1,GLuint num_groups_z1)
{
	static PFNGLDISPATCHCOMPUTEPROC_HPP fn=reinterpret_cast<PFNGLDISPATCHCOMPUTEPROC_HPP>(_impl::_get_proc_address("glDispatchCompute","GL_ARB_compute_shader"));
	 fn(num_groups_x1,num_groups_y1,num_groups_z1);
}
typedef void (*PFNGLDISPATCHCOMPUTEINDIRECTPROC_HPP)(GLintptr);
static inline void DispatchComputeIndirect(GLintptr indirect1)
{
	static PFNGLDISPATCHCOMPUTEINDIRECTPROC_HPP fn=reinterpret_cast<PFNGLDISPATCHCOMPUTEINDIRECTPROC_HPP>(_impl::_get_proc_address("glDispatchComputeIndirect","GL_ARB_compute_shader"));
	 fn(indirect1);
}}
#endif

#ifndef GL_ARB_compute_variable_group_size
#define GL_ARB_compute_variable_group_size
#ifndef GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB
#define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB 0x90EB
#endif //GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB
#ifndef GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB
#define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF
#endif //GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB
#ifndef GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB
#define GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB 0x9344
#endif //GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB
#ifndef GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB
#define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345
#endif //GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC_HPP)(GLuint,GLuint,GLuint,GLuint,GLuint,GLuint);
static inline void DispatchComputeGroupSizeARB(GLuint num_groups_x1,GLuint num_groups_y1,GLuint num_groups_z1,GLuint group_size_x1,GLuint group_size_y1,GLuint group_size_z1)
{
	static PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC_HPP fn=reinterpret_cast<PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC_HPP>(_impl::_get_proc_address("glDispatchComputeGroupSizeARB","GL_ARB_compute_variable_group_size"));
	 fn(num_groups_x1,num_groups_y1,num_groups_z1,group_size_x1,group_size_y1,group_size_z1);
}}
#endif

#ifndef GL_ARB_conditional_render_inverted
#define GL_ARB_conditional_render_inverted
#ifndef GL_QUERY_WAIT_INVERTED
#define GL_QUERY_WAIT_INVERTED 0x8E17
#endif //GL_QUERY_WAIT_INVERTED
#ifndef GL_QUERY_NO_WAIT_INVERTED
#define GL_QUERY_NO_WAIT_INVERTED 0x8E18
#endif //GL_QUERY_NO_WAIT_INVERTED
#ifndef GL_QUERY_BY_REGION_WAIT_INVERTED
#define GL_QUERY_BY_REGION_WAIT_INVERTED 0x8E19
#endif //GL_QUERY_BY_REGION_WAIT_INVERTED
#ifndef GL_QUERY_BY_REGION_NO_WAIT_INVERTED
#define GL_QUERY_BY_REGION_NO_WAIT_INVERTED 0x8E1A
#endif //GL_QUERY_BY_REGION_NO_WAIT_INVERTED
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_conservative_depth
#define GL_ARB_conservative_depth
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_copy_buffer
#define GL_ARB_copy_buffer
#ifndef GL_COPY_READ_BUFFER
#define GL_COPY_READ_BUFFER 0x8F36
#endif //GL_COPY_READ_BUFFER
#ifndef GL_COPY_READ_BUFFER_BINDING
#define GL_COPY_READ_BUFFER_BINDING 0x8F36
#endif //GL_COPY_READ_BUFFER_BINDING
#ifndef GL_COPY_WRITE_BUFFER
#define GL_COPY_WRITE_BUFFER 0x8F37
#endif //GL_COPY_WRITE_BUFFER
#ifndef GL_COPY_WRITE_BUFFER_BINDING
#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37
#endif //GL_COPY_WRITE_BUFFER_BINDING
extern "C" {
}
namespace gl{

typedef void (*PFNGLCOPYBUFFERSUBDATAPROC_HPP)(GLenum,GLenum,GLintptr,GLintptr,GLsizeiptr);
static inline void CopyBufferSubData(GLenum readTarget1,GLenum writeTarget1,GLintptr readOffset1,GLintptr writeOffset1,GLsizeiptr size1)
{
	static PFNGLCOPYBUFFERSUBDATAPROC_HPP fn=reinterpret_cast<PFNGLCOPYBUFFERSUBDATAPROC_HPP>(_impl::_get_proc_address("glCopyBufferSubData","GL_ARB_copy_buffer"));
	 fn(readTarget1,writeTarget1,readOffset1,writeOffset1,size1);
}}
#endif

#ifndef GL_ARB_copy_image
#define GL_ARB_copy_image
extern "C" {
}
namespace gl{

typedef void (*PFNGLCOPYIMAGESUBDATAPROC_HPP)(GLuint,GLenum,GLint,GLint,GLint,GLint,GLuint,GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei);
static inline void CopyImageSubData(GLuint srcName1,GLenum srcTarget1,GLint srcLevel1,GLint srcX1,GLint srcY1,GLint srcZ1,GLuint dstName1,GLenum dstTarget1,GLint dstLevel1,GLint dstX1,GLint dstY1,GLint dstZ1,GLsizei srcWidth1,GLsizei srcHeight1,GLsizei srcDepth1)
{
	static PFNGLCOPYIMAGESUBDATAPROC_HPP fn=reinterpret_cast<PFNGLCOPYIMAGESUBDATAPROC_HPP>(_impl::_get_proc_address("glCopyImageSubData","GL_ARB_copy_image"));
	 fn(srcName1,srcTarget1,srcLevel1,srcX1,srcY1,srcZ1,dstName1,dstTarget1,dstLevel1,dstX1,dstY1,dstZ1,srcWidth1,srcHeight1,srcDepth1);
}}
#endif

#ifndef GL_ARB_cull_distance
#define GL_ARB_cull_distance
#ifndef GL_MAX_CULL_DISTANCES
#define GL_MAX_CULL_DISTANCES 0x82F9
#endif //GL_MAX_CULL_DISTANCES
#ifndef GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES
#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA
#endif //GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_debug_output
#define GL_ARB_debug_output
#ifndef GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB
#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242
#endif //GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB
#ifndef GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB
#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243
#endif //GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB
#ifndef GL_DEBUG_CALLBACK_FUNCTION_ARB
#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244
#endif //GL_DEBUG_CALLBACK_FUNCTION_ARB
#ifndef GL_DEBUG_CALLBACK_USER_PARAM_ARB
#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245
#endif //GL_DEBUG_CALLBACK_USER_PARAM_ARB
#ifndef GL_DEBUG_SOURCE_API_ARB
#define GL_DEBUG_SOURCE_API_ARB 0x8246
#endif //GL_DEBUG_SOURCE_API_ARB
#ifndef GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB
#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247
#endif //GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB
#ifndef GL_DEBUG_SOURCE_SHADER_COMPILER_ARB
#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248
#endif //GL_DEBUG_SOURCE_SHADER_COMPILER_ARB
#ifndef GL_DEBUG_SOURCE_THIRD_PARTY_ARB
#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249
#endif //GL_DEBUG_SOURCE_THIRD_PARTY_ARB
#ifndef GL_DEBUG_SOURCE_APPLICATION_ARB
#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A
#endif //GL_DEBUG_SOURCE_APPLICATION_ARB
#ifndef GL_DEBUG_SOURCE_OTHER_ARB
#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B
#endif //GL_DEBUG_SOURCE_OTHER_ARB
#ifndef GL_DEBUG_TYPE_ERROR_ARB
#define GL_DEBUG_TYPE_ERROR_ARB 0x824C
#endif //GL_DEBUG_TYPE_ERROR_ARB
#ifndef GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB
#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D
#endif //GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB
#ifndef GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB
#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E
#endif //GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB
#ifndef GL_DEBUG_TYPE_PORTABILITY_ARB
#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F
#endif //GL_DEBUG_TYPE_PORTABILITY_ARB
#ifndef GL_DEBUG_TYPE_PERFORMANCE_ARB
#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250
#endif //GL_DEBUG_TYPE_PERFORMANCE_ARB
#ifndef GL_DEBUG_TYPE_OTHER_ARB
#define GL_DEBUG_TYPE_OTHER_ARB 0x8251
#endif //GL_DEBUG_TYPE_OTHER_ARB
#ifndef GL_MAX_DEBUG_MESSAGE_LENGTH_ARB
#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143
#endif //GL_MAX_DEBUG_MESSAGE_LENGTH_ARB
#ifndef GL_MAX_DEBUG_LOGGED_MESSAGES_ARB
#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144
#endif //GL_MAX_DEBUG_LOGGED_MESSAGES_ARB
#ifndef GL_DEBUG_LOGGED_MESSAGES_ARB
#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145
#endif //GL_DEBUG_LOGGED_MESSAGES_ARB
#ifndef GL_DEBUG_SEVERITY_HIGH_ARB
#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146
#endif //GL_DEBUG_SEVERITY_HIGH_ARB
#ifndef GL_DEBUG_SEVERITY_MEDIUM_ARB
#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147
#endif //GL_DEBUG_SEVERITY_MEDIUM_ARB
#ifndef GL_DEBUG_SEVERITY_LOW_ARB
#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148
#endif //GL_DEBUG_SEVERITY_LOW_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLDEBUGMESSAGECALLBACKARBPROC_HPP)(GLDEBUGPROCARB,const void *);
static inline void DebugMessageCallbackARB(GLDEBUGPROCARB callback1,const void * userParam1)
{
	static PFNGLDEBUGMESSAGECALLBACKARBPROC_HPP fn=reinterpret_cast<PFNGLDEBUGMESSAGECALLBACKARBPROC_HPP>(_impl::_get_proc_address("glDebugMessageCallbackARB","GL_ARB_debug_output"));
	 fn(callback1,userParam1);
}
typedef void (*PFNGLDEBUGMESSAGECONTROLARBPROC_HPP)(GLenum,GLenum,GLenum,GLsizei,const GLuint *,GLboolean);
static inline void DebugMessageControlARB(GLenum source1,GLenum type1,GLenum severity1,GLsizei count1,const GLuint * ids1,GLboolean enabled1)
{
	static PFNGLDEBUGMESSAGECONTROLARBPROC_HPP fn=reinterpret_cast<PFNGLDEBUGMESSAGECONTROLARBPROC_HPP>(_impl::_get_proc_address("glDebugMessageControlARB","GL_ARB_debug_output"));
	 fn(source1,type1,severity1,count1,ids1,enabled1);
}
typedef void (*PFNGLDEBUGMESSAGEINSERTARBPROC_HPP)(GLenum,GLenum,GLuint,GLenum,GLsizei,const GLchar *);
static inline void DebugMessageInsertARB(GLenum source1,GLenum type1,GLuint id1,GLenum severity1,GLsizei length1,const GLchar * buf1)
{
	static PFNGLDEBUGMESSAGEINSERTARBPROC_HPP fn=reinterpret_cast<PFNGLDEBUGMESSAGEINSERTARBPROC_HPP>(_impl::_get_proc_address("glDebugMessageInsertARB","GL_ARB_debug_output"));
	 fn(source1,type1,id1,severity1,length1,buf1);
}
typedef GLuint (*PFNGLGETDEBUGMESSAGELOGARBPROC_HPP)(GLuint,GLsizei,GLenum *,GLenum *,GLuint *,GLenum *,GLsizei *,GLchar *);
static inline GLuint GetDebugMessageLogARB(GLuint count1,GLsizei bufSize1,GLenum * sources1,GLenum * types1,GLuint * ids1,GLenum * severities1,GLsizei * lengths1,GLchar * messageLog1)
{
	static PFNGLGETDEBUGMESSAGELOGARBPROC_HPP fn=reinterpret_cast<PFNGLGETDEBUGMESSAGELOGARBPROC_HPP>(_impl::_get_proc_address("glGetDebugMessageLogARB","GL_ARB_debug_output"));
	return fn(count1,bufSize1,sources1,types1,ids1,severities1,lengths1,messageLog1);
}}
#endif

#ifndef GL_ARB_depth_buffer_float
#define GL_ARB_depth_buffer_float
#ifndef GL_DEPTH_COMPONENT32F
#define GL_DEPTH_COMPONENT32F 0x8CAC
#endif //GL_DEPTH_COMPONENT32F
#ifndef GL_DEPTH32F_STENCIL8
#define GL_DEPTH32F_STENCIL8 0x8CAD
#endif //GL_DEPTH32F_STENCIL8
#ifndef GL_FLOAT_32_UNSIGNED_INT_24_8_REV
#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
#endif //GL_FLOAT_32_UNSIGNED_INT_24_8_REV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_depth_clamp
#define GL_ARB_depth_clamp
#ifndef GL_DEPTH_CLAMP
#define GL_DEPTH_CLAMP 0x864F
#endif //GL_DEPTH_CLAMP
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_depth_texture
#define GL_ARB_depth_texture
#ifndef GL_DEPTH_COMPONENT16_ARB
#define GL_DEPTH_COMPONENT16_ARB 0x81A5
#endif //GL_DEPTH_COMPONENT16_ARB
#ifndef GL_DEPTH_COMPONENT24_ARB
#define GL_DEPTH_COMPONENT24_ARB 0x81A6
#endif //GL_DEPTH_COMPONENT24_ARB
#ifndef GL_DEPTH_COMPONENT32_ARB
#define GL_DEPTH_COMPONENT32_ARB 0x81A7
#endif //GL_DEPTH_COMPONENT32_ARB
#ifndef GL_TEXTURE_DEPTH_SIZE_ARB
#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A
#endif //GL_TEXTURE_DEPTH_SIZE_ARB
#ifndef GL_DEPTH_TEXTURE_MODE_ARB
#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B
#endif //GL_DEPTH_TEXTURE_MODE_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_derivative_control
#define GL_ARB_derivative_control
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_direct_state_access
#define GL_ARB_direct_state_access
#ifndef GL_TEXTURE_TARGET
#define GL_TEXTURE_TARGET 0x1006
#endif //GL_TEXTURE_TARGET
#ifndef GL_TEXTURE_BINDING_1D
#define GL_TEXTURE_BINDING_1D 0x8068
#endif //GL_TEXTURE_BINDING_1D
#ifndef GL_TEXTURE_BINDING_2D
#define GL_TEXTURE_BINDING_2D 0x8069
#endif //GL_TEXTURE_BINDING_2D
#ifndef GL_TEXTURE_BINDING_3D
#define GL_TEXTURE_BINDING_3D 0x806A
#endif //GL_TEXTURE_BINDING_3D
#ifndef GL_QUERY_TARGET
#define GL_QUERY_TARGET 0x82EA
#endif //GL_QUERY_TARGET
#ifndef GL_TEXTURE_BINDING
#define GL_TEXTURE_BINDING 0x82EB
#endif //GL_TEXTURE_BINDING
#ifndef GL_TEXTURE_BINDING_RECTANGLE
#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6
#endif //GL_TEXTURE_BINDING_RECTANGLE
#ifndef GL_TEXTURE_BINDING_CUBE_MAP
#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
#endif //GL_TEXTURE_BINDING_CUBE_MAP
#ifndef GL_TEXTURE_BINDING_1D_ARRAY
#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C
#endif //GL_TEXTURE_BINDING_1D_ARRAY
#ifndef GL_TEXTURE_BINDING_2D_ARRAY
#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
#endif //GL_TEXTURE_BINDING_2D_ARRAY
#ifndef GL_TEXTURE_BINDING_BUFFER
#define GL_TEXTURE_BINDING_BUFFER 0x8C2C
#endif //GL_TEXTURE_BINDING_BUFFER
#ifndef GL_TEXTURE_BINDING_CUBE_MAP_ARRAY
#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A
#endif //GL_TEXTURE_BINDING_CUBE_MAP_ARRAY
#ifndef GL_TEXTURE_BINDING_2D_MULTISAMPLE
#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
#endif //GL_TEXTURE_BINDING_2D_MULTISAMPLE
#ifndef GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY
#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
#endif //GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDTEXTUREUNITPROC_HPP)(GLuint,GLuint);
static inline void BindTextureUnit(GLuint unit1,GLuint texture1)
{
	static PFNGLBINDTEXTUREUNITPROC_HPP fn=reinterpret_cast<PFNGLBINDTEXTUREUNITPROC_HPP>(_impl::_get_proc_address("glBindTextureUnit","GL_ARB_direct_state_access"));
	 fn(unit1,texture1);
}
typedef void (*PFNGLBLITNAMEDFRAMEBUFFERPROC_HPP)(GLuint,GLuint,GLint,GLint,GLint,GLint,GLint,GLint,GLint,GLint,GLbitfield,GLenum);
static inline void BlitNamedFramebuffer(GLuint readFramebuffer1,GLuint drawFramebuffer1,GLint srcX01,GLint srcY01,GLint srcX11,GLint srcY11,GLint dstX01,GLint dstY01,GLint dstX11,GLint dstY11,GLbitfield mask1,GLenum filter1)
{
	static PFNGLBLITNAMEDFRAMEBUFFERPROC_HPP fn=reinterpret_cast<PFNGLBLITNAMEDFRAMEBUFFERPROC_HPP>(_impl::_get_proc_address("glBlitNamedFramebuffer","GL_ARB_direct_state_access"));
	 fn(readFramebuffer1,drawFramebuffer1,srcX01,srcY01,srcX11,srcY11,dstX01,dstY01,dstX11,dstY11,mask1,filter1);
}
typedef GLenum (*PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC_HPP)(GLuint,GLenum);
static inline GLenum CheckNamedFramebufferStatus(GLuint framebuffer1,GLenum target1)
{
	static PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC_HPP fn=reinterpret_cast<PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC_HPP>(_impl::_get_proc_address("glCheckNamedFramebufferStatus","GL_ARB_direct_state_access"));
	return fn(framebuffer1,target1);
}
typedef void (*PFNGLCLEARNAMEDBUFFERDATAPROC_HPP)(GLuint,GLenum,GLenum,GLenum,const void *);
static inline void ClearNamedBufferData(GLuint buffer1,GLenum internalformat1,GLenum format1,GLenum type1,const void * data1)
{
	static PFNGLCLEARNAMEDBUFFERDATAPROC_HPP fn=reinterpret_cast<PFNGLCLEARNAMEDBUFFERDATAPROC_HPP>(_impl::_get_proc_address("glClearNamedBufferData","GL_ARB_direct_state_access"));
	 fn(buffer1,internalformat1,format1,type1,data1);
}
typedef void (*PFNGLCLEARNAMEDBUFFERSUBDATAPROC_HPP)(GLuint,GLenum,GLintptr,GLsizei,GLenum,GLenum,const void *);
static inline void ClearNamedBufferSubData(GLuint buffer1,GLenum internalformat1,GLintptr offset1,GLsizei size1,GLenum format1,GLenum type1,const void * data1)
{
	static PFNGLCLEARNAMEDBUFFERSUBDATAPROC_HPP fn=reinterpret_cast<PFNGLCLEARNAMEDBUFFERSUBDATAPROC_HPP>(_impl::_get_proc_address("glClearNamedBufferSubData","GL_ARB_direct_state_access"));
	 fn(buffer1,internalformat1,offset1,size1,format1,type1,data1);
}
typedef void (*PFNGLCLEARNAMEDFRAMEBUFFERFIPROC_HPP)(GLuint,GLenum,const GLfloat,GLint);
static inline void ClearNamedFramebufferfi(GLuint framebuffer1,GLenum buffer1,const GLfloat depth1,GLint stencil1)
{
	static PFNGLCLEARNAMEDFRAMEBUFFERFIPROC_HPP fn=reinterpret_cast<PFNGLCLEARNAMEDFRAMEBUFFERFIPROC_HPP>(_impl::_get_proc_address("glClearNamedFramebufferfi","GL_ARB_direct_state_access"));
	 fn(framebuffer1,buffer1,depth1,stencil1);
}
typedef void (*PFNGLCLEARNAMEDFRAMEBUFFERFVPROC_HPP)(GLuint,GLenum,GLint,const GLfloat *);
static inline void ClearNamedFramebufferfv(GLuint framebuffer1,GLenum buffer1,GLint drawbuffer1,const GLfloat * value1)
{
	static PFNGLCLEARNAMEDFRAMEBUFFERFVPROC_HPP fn=reinterpret_cast<PFNGLCLEARNAMEDFRAMEBUFFERFVPROC_HPP>(_impl::_get_proc_address("glClearNamedFramebufferfv","GL_ARB_direct_state_access"));
	 fn(framebuffer1,buffer1,drawbuffer1,value1);
}
typedef void (*PFNGLCLEARNAMEDFRAMEBUFFERIVPROC_HPP)(GLuint,GLenum,GLint,const GLint *);
static inline void ClearNamedFramebufferiv(GLuint framebuffer1,GLenum buffer1,GLint drawbuffer1,const GLint * value1)
{
	static PFNGLCLEARNAMEDFRAMEBUFFERIVPROC_HPP fn=reinterpret_cast<PFNGLCLEARNAMEDFRAMEBUFFERIVPROC_HPP>(_impl::_get_proc_address("glClearNamedFramebufferiv","GL_ARB_direct_state_access"));
	 fn(framebuffer1,buffer1,drawbuffer1,value1);
}
typedef void (*PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC_HPP)(GLuint,GLenum,GLint,const GLuint *);
static inline void ClearNamedFramebufferuiv(GLuint framebuffer1,GLenum buffer1,GLint drawbuffer1,const GLuint * value1)
{
	static PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC_HPP fn=reinterpret_cast<PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC_HPP>(_impl::_get_proc_address("glClearNamedFramebufferuiv","GL_ARB_direct_state_access"));
	 fn(framebuffer1,buffer1,drawbuffer1,value1);
}
typedef void (*PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC_HPP)(GLuint,GLint,GLint,GLsizei,GLenum,GLsizei,const void *);
static inline void CompressedTextureSubImage1D(GLuint texture1,GLint level1,GLint xoffset1,GLsizei width1,GLenum format1,GLsizei imageSize1,const void * data1)
{
	static PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC_HPP>(_impl::_get_proc_address("glCompressedTextureSubImage1D","GL_ARB_direct_state_access"));
	 fn(texture1,level1,xoffset1,width1,format1,imageSize1,data1);
}
typedef void (*PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC_HPP)(GLuint,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLsizei,const void *);
static inline void CompressedTextureSubImage2D(GLuint texture1,GLint level1,GLint xoffset1,GLint yoffset1,GLsizei width1,GLsizei height1,GLenum format1,GLsizei imageSize1,const void * data1)
{
	static PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC_HPP>(_impl::_get_proc_address("glCompressedTextureSubImage2D","GL_ARB_direct_state_access"));
	 fn(texture1,level1,xoffset1,yoffset1,width1,height1,format1,imageSize1,data1);
}
typedef void (*PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC_HPP)(GLuint,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLsizei,const void *);
static inline void CompressedTextureSubImage3D(GLuint texture1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLsizei width1,GLsizei height1,GLsizei depth1,GLenum format1,GLsizei imageSize1,const void * data1)
{
	static PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC_HPP>(_impl::_get_proc_address("glCompressedTextureSubImage3D","GL_ARB_direct_state_access"));
	 fn(texture1,level1,xoffset1,yoffset1,zoffset1,width1,height1,depth1,format1,imageSize1,data1);
}
typedef void (*PFNGLCOPYNAMEDBUFFERSUBDATAPROC_HPP)(GLuint,GLuint,GLintptr,GLintptr,GLsizei);
static inline void CopyNamedBufferSubData(GLuint readBuffer1,GLuint writeBuffer1,GLintptr readOffset1,GLintptr writeOffset1,GLsizei size1)
{
	static PFNGLCOPYNAMEDBUFFERSUBDATAPROC_HPP fn=reinterpret_cast<PFNGLCOPYNAMEDBUFFERSUBDATAPROC_HPP>(_impl::_get_proc_address("glCopyNamedBufferSubData","GL_ARB_direct_state_access"));
	 fn(readBuffer1,writeBuffer1,readOffset1,writeOffset1,size1);
}
typedef void (*PFNGLCOPYTEXTURESUBIMAGE1DPROC_HPP)(GLuint,GLint,GLint,GLint,GLint,GLsizei);
static inline void CopyTextureSubImage1D(GLuint texture1,GLint level1,GLint xoffset1,GLint x1,GLint y1,GLsizei width1)
{
	static PFNGLCOPYTEXTURESUBIMAGE1DPROC_HPP fn=reinterpret_cast<PFNGLCOPYTEXTURESUBIMAGE1DPROC_HPP>(_impl::_get_proc_address("glCopyTextureSubImage1D","GL_ARB_direct_state_access"));
	 fn(texture1,level1,xoffset1,x1,y1,width1);
}
typedef void (*PFNGLCOPYTEXTURESUBIMAGE2DPROC_HPP)(GLuint,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
static inline void CopyTextureSubImage2D(GLuint texture1,GLint level1,GLint xoffset1,GLint yoffset1,GLint x1,GLint y1,GLsizei width1,GLsizei height1)
{
	static PFNGLCOPYTEXTURESUBIMAGE2DPROC_HPP fn=reinterpret_cast<PFNGLCOPYTEXTURESUBIMAGE2DPROC_HPP>(_impl::_get_proc_address("glCopyTextureSubImage2D","GL_ARB_direct_state_access"));
	 fn(texture1,level1,xoffset1,yoffset1,x1,y1,width1,height1);
}
typedef void (*PFNGLCOPYTEXTURESUBIMAGE3DPROC_HPP)(GLuint,GLint,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
static inline void CopyTextureSubImage3D(GLuint texture1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLint x1,GLint y1,GLsizei width1,GLsizei height1)
{
	static PFNGLCOPYTEXTURESUBIMAGE3DPROC_HPP fn=reinterpret_cast<PFNGLCOPYTEXTURESUBIMAGE3DPROC_HPP>(_impl::_get_proc_address("glCopyTextureSubImage3D","GL_ARB_direct_state_access"));
	 fn(texture1,level1,xoffset1,yoffset1,zoffset1,x1,y1,width1,height1);
}
typedef void (*PFNGLCREATEBUFFERSPROC_HPP)(GLsizei,GLuint *);
static inline void CreateBuffers(GLsizei n1,GLuint * buffers1)
{
	static PFNGLCREATEBUFFERSPROC_HPP fn=reinterpret_cast<PFNGLCREATEBUFFERSPROC_HPP>(_impl::_get_proc_address("glCreateBuffers","GL_ARB_direct_state_access"));
	 fn(n1,buffers1);
}
typedef void (*PFNGLCREATEFRAMEBUFFERSPROC_HPP)(GLsizei,GLuint *);
static inline void CreateFramebuffers(GLsizei n1,GLuint * framebuffers1)
{
	static PFNGLCREATEFRAMEBUFFERSPROC_HPP fn=reinterpret_cast<PFNGLCREATEFRAMEBUFFERSPROC_HPP>(_impl::_get_proc_address("glCreateFramebuffers","GL_ARB_direct_state_access"));
	 fn(n1,framebuffers1);
}
typedef void (*PFNGLCREATEPROGRAMPIPELINESPROC_HPP)(GLsizei,GLuint *);
static inline void CreateProgramPipelines(GLsizei n1,GLuint * pipelines1)
{
	static PFNGLCREATEPROGRAMPIPELINESPROC_HPP fn=reinterpret_cast<PFNGLCREATEPROGRAMPIPELINESPROC_HPP>(_impl::_get_proc_address("glCreateProgramPipelines","GL_ARB_direct_state_access"));
	 fn(n1,pipelines1);
}
typedef void (*PFNGLCREATEQUERIESPROC_HPP)(GLenum,GLsizei,GLuint *);
static inline void CreateQueries(GLenum target1,GLsizei n1,GLuint * ids1)
{
	static PFNGLCREATEQUERIESPROC_HPP fn=reinterpret_cast<PFNGLCREATEQUERIESPROC_HPP>(_impl::_get_proc_address("glCreateQueries","GL_ARB_direct_state_access"));
	 fn(target1,n1,ids1);
}
typedef void (*PFNGLCREATERENDERBUFFERSPROC_HPP)(GLsizei,GLuint *);
static inline void CreateRenderbuffers(GLsizei n1,GLuint * renderbuffers1)
{
	static PFNGLCREATERENDERBUFFERSPROC_HPP fn=reinterpret_cast<PFNGLCREATERENDERBUFFERSPROC_HPP>(_impl::_get_proc_address("glCreateRenderbuffers","GL_ARB_direct_state_access"));
	 fn(n1,renderbuffers1);
}
typedef void (*PFNGLCREATESAMPLERSPROC_HPP)(GLsizei,GLuint *);
static inline void CreateSamplers(GLsizei n1,GLuint * samplers1)
{
	static PFNGLCREATESAMPLERSPROC_HPP fn=reinterpret_cast<PFNGLCREATESAMPLERSPROC_HPP>(_impl::_get_proc_address("glCreateSamplers","GL_ARB_direct_state_access"));
	 fn(n1,samplers1);
}
typedef void (*PFNGLCREATETEXTURESPROC_HPP)(GLenum,GLsizei,GLuint *);
static inline void CreateTextures(GLenum target1,GLsizei n1,GLuint * textures1)
{
	static PFNGLCREATETEXTURESPROC_HPP fn=reinterpret_cast<PFNGLCREATETEXTURESPROC_HPP>(_impl::_get_proc_address("glCreateTextures","GL_ARB_direct_state_access"));
	 fn(target1,n1,textures1);
}
typedef void (*PFNGLCREATETRANSFORMFEEDBACKSPROC_HPP)(GLsizei,GLuint *);
static inline void CreateTransformFeedbacks(GLsizei n1,GLuint * ids1)
{
	static PFNGLCREATETRANSFORMFEEDBACKSPROC_HPP fn=reinterpret_cast<PFNGLCREATETRANSFORMFEEDBACKSPROC_HPP>(_impl::_get_proc_address("glCreateTransformFeedbacks","GL_ARB_direct_state_access"));
	 fn(n1,ids1);
}
typedef void (*PFNGLCREATEVERTEXARRAYSPROC_HPP)(GLsizei,GLuint *);
static inline void CreateVertexArrays(GLsizei n1,GLuint * arrays1)
{
	static PFNGLCREATEVERTEXARRAYSPROC_HPP fn=reinterpret_cast<PFNGLCREATEVERTEXARRAYSPROC_HPP>(_impl::_get_proc_address("glCreateVertexArrays","GL_ARB_direct_state_access"));
	 fn(n1,arrays1);
}
typedef void (*PFNGLDISABLEVERTEXARRAYATTRIBPROC_HPP)(GLuint,GLuint);
static inline void DisableVertexArrayAttrib(GLuint vaobj1,GLuint index1)
{
	static PFNGLDISABLEVERTEXARRAYATTRIBPROC_HPP fn=reinterpret_cast<PFNGLDISABLEVERTEXARRAYATTRIBPROC_HPP>(_impl::_get_proc_address("glDisableVertexArrayAttrib","GL_ARB_direct_state_access"));
	 fn(vaobj1,index1);
}
typedef void (*PFNGLENABLEVERTEXARRAYATTRIBPROC_HPP)(GLuint,GLuint);
static inline void EnableVertexArrayAttrib(GLuint vaobj1,GLuint index1)
{
	static PFNGLENABLEVERTEXARRAYATTRIBPROC_HPP fn=reinterpret_cast<PFNGLENABLEVERTEXARRAYATTRIBPROC_HPP>(_impl::_get_proc_address("glEnableVertexArrayAttrib","GL_ARB_direct_state_access"));
	 fn(vaobj1,index1);
}
typedef void (*PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC_HPP)(GLuint,GLintptr,GLsizei);
static inline void FlushMappedNamedBufferRange(GLuint buffer1,GLintptr offset1,GLsizei length1)
{
	static PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC_HPP fn=reinterpret_cast<PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC_HPP>(_impl::_get_proc_address("glFlushMappedNamedBufferRange","GL_ARB_direct_state_access"));
	 fn(buffer1,offset1,length1);
}
typedef void (*PFNGLGENERATETEXTUREMIPMAPPROC_HPP)(GLuint);
static inline void GenerateTextureMipmap(GLuint texture1)
{
	static PFNGLGENERATETEXTUREMIPMAPPROC_HPP fn=reinterpret_cast<PFNGLGENERATETEXTUREMIPMAPPROC_HPP>(_impl::_get_proc_address("glGenerateTextureMipmap","GL_ARB_direct_state_access"));
	 fn(texture1);
}
typedef void (*PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC_HPP)(GLuint,GLint,GLsizei,void *);
static inline void GetCompressedTextureImage(GLuint texture1,GLint level1,GLsizei bufSize1,void * pixels1)
{
	static PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC_HPP fn=reinterpret_cast<PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC_HPP>(_impl::_get_proc_address("glGetCompressedTextureImage","GL_ARB_direct_state_access"));
	 fn(texture1,level1,bufSize1,pixels1);
}
typedef void (*PFNGLGETNAMEDBUFFERPARAMETERI64VPROC_HPP)(GLuint,GLenum,GLint64 *);
static inline void GetNamedBufferParameteri64v(GLuint buffer1,GLenum pname1,GLint64 * params1)
{
	static PFNGLGETNAMEDBUFFERPARAMETERI64VPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDBUFFERPARAMETERI64VPROC_HPP>(_impl::_get_proc_address("glGetNamedBufferParameteri64v","GL_ARB_direct_state_access"));
	 fn(buffer1,pname1,params1);
}
typedef void (*PFNGLGETNAMEDBUFFERPARAMETERIVPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetNamedBufferParameteriv(GLuint buffer1,GLenum pname1,GLint * params1)
{
	static PFNGLGETNAMEDBUFFERPARAMETERIVPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDBUFFERPARAMETERIVPROC_HPP>(_impl::_get_proc_address("glGetNamedBufferParameteriv","GL_ARB_direct_state_access"));
	 fn(buffer1,pname1,params1);
}
typedef void (*PFNGLGETNAMEDBUFFERPOINTERVPROC_HPP)(GLuint,GLenum,void **);
static inline void GetNamedBufferPointerv(GLuint buffer1,GLenum pname1,void ** params1)
{
	static PFNGLGETNAMEDBUFFERPOINTERVPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDBUFFERPOINTERVPROC_HPP>(_impl::_get_proc_address("glGetNamedBufferPointerv","GL_ARB_direct_state_access"));
	 fn(buffer1,pname1,params1);
}
typedef void (*PFNGLGETNAMEDBUFFERSUBDATAPROC_HPP)(GLuint,GLintptr,GLsizei,void *);
static inline void GetNamedBufferSubData(GLuint buffer1,GLintptr offset1,GLsizei size1,void * data1)
{
	static PFNGLGETNAMEDBUFFERSUBDATAPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDBUFFERSUBDATAPROC_HPP>(_impl::_get_proc_address("glGetNamedBufferSubData","GL_ARB_direct_state_access"));
	 fn(buffer1,offset1,size1,data1);
}
typedef void (*PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC_HPP)(GLuint,GLenum,GLenum,GLint *);
static inline void GetNamedFramebufferAttachmentParameteriv(GLuint framebuffer1,GLenum attachment1,GLenum pname1,GLint * params1)
{
	static PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC_HPP>(_impl::_get_proc_address("glGetNamedFramebufferAttachmentParameteriv","GL_ARB_direct_state_access"));
	 fn(framebuffer1,attachment1,pname1,params1);
}
typedef void (*PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetNamedFramebufferParameteriv(GLuint framebuffer1,GLenum pname1,GLint * param1)
{
	static PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC_HPP>(_impl::_get_proc_address("glGetNamedFramebufferParameteriv","GL_ARB_direct_state_access"));
	 fn(framebuffer1,pname1,param1);
}
typedef void (*PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetNamedRenderbufferParameteriv(GLuint renderbuffer1,GLenum pname1,GLint * params1)
{
	static PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC_HPP>(_impl::_get_proc_address("glGetNamedRenderbufferParameteriv","GL_ARB_direct_state_access"));
	 fn(renderbuffer1,pname1,params1);
}
typedef void (*PFNGLGETTEXTUREIMAGEPROC_HPP)(GLuint,GLint,GLenum,GLenum,GLsizei,void *);
static inline void GetTextureImage(GLuint texture1,GLint level1,GLenum format1,GLenum type1,GLsizei bufSize1,void * pixels1)
{
	static PFNGLGETTEXTUREIMAGEPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTUREIMAGEPROC_HPP>(_impl::_get_proc_address("glGetTextureImage","GL_ARB_direct_state_access"));
	 fn(texture1,level1,format1,type1,bufSize1,pixels1);
}
typedef void (*PFNGLGETTEXTURELEVELPARAMETERFVPROC_HPP)(GLuint,GLint,GLenum,GLfloat *);
static inline void GetTextureLevelParameterfv(GLuint texture1,GLint level1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETTEXTURELEVELPARAMETERFVPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTURELEVELPARAMETERFVPROC_HPP>(_impl::_get_proc_address("glGetTextureLevelParameterfv","GL_ARB_direct_state_access"));
	 fn(texture1,level1,pname1,params1);
}
typedef void (*PFNGLGETTEXTURELEVELPARAMETERIVPROC_HPP)(GLuint,GLint,GLenum,GLint *);
static inline void GetTextureLevelParameteriv(GLuint texture1,GLint level1,GLenum pname1,GLint * params1)
{
	static PFNGLGETTEXTURELEVELPARAMETERIVPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTURELEVELPARAMETERIVPROC_HPP>(_impl::_get_proc_address("glGetTextureLevelParameteriv","GL_ARB_direct_state_access"));
	 fn(texture1,level1,pname1,params1);
}
typedef void (*PFNGLGETTEXTUREPARAMETERIIVPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetTextureParameterIiv(GLuint texture1,GLenum pname1,GLint * params1)
{
	static PFNGLGETTEXTUREPARAMETERIIVPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTUREPARAMETERIIVPROC_HPP>(_impl::_get_proc_address("glGetTextureParameterIiv","GL_ARB_direct_state_access"));
	 fn(texture1,pname1,params1);
}
typedef void (*PFNGLGETTEXTUREPARAMETERIUIVPROC_HPP)(GLuint,GLenum,GLuint *);
static inline void GetTextureParameterIuiv(GLuint texture1,GLenum pname1,GLuint * params1)
{
	static PFNGLGETTEXTUREPARAMETERIUIVPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTUREPARAMETERIUIVPROC_HPP>(_impl::_get_proc_address("glGetTextureParameterIuiv","GL_ARB_direct_state_access"));
	 fn(texture1,pname1,params1);
}
typedef void (*PFNGLGETTEXTUREPARAMETERFVPROC_HPP)(GLuint,GLenum,GLfloat *);
static inline void GetTextureParameterfv(GLuint texture1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETTEXTUREPARAMETERFVPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTUREPARAMETERFVPROC_HPP>(_impl::_get_proc_address("glGetTextureParameterfv","GL_ARB_direct_state_access"));
	 fn(texture1,pname1,params1);
}
typedef void (*PFNGLGETTEXTUREPARAMETERIVPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetTextureParameteriv(GLuint texture1,GLenum pname1,GLint * params1)
{
	static PFNGLGETTEXTUREPARAMETERIVPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTUREPARAMETERIVPROC_HPP>(_impl::_get_proc_address("glGetTextureParameteriv","GL_ARB_direct_state_access"));
	 fn(texture1,pname1,params1);
}
typedef void (*PFNGLGETTRANSFORMFEEDBACKI64_VPROC_HPP)(GLuint,GLenum,GLuint,GLint64 *);
static inline void GetTransformFeedbacki64_v(GLuint xfb1,GLenum pname1,GLuint index1,GLint64 * param1)
{
	static PFNGLGETTRANSFORMFEEDBACKI64_VPROC_HPP fn=reinterpret_cast<PFNGLGETTRANSFORMFEEDBACKI64_VPROC_HPP>(_impl::_get_proc_address("glGetTransformFeedbacki64_v","GL_ARB_direct_state_access"));
	 fn(xfb1,pname1,index1,param1);
}
typedef void (*PFNGLGETTRANSFORMFEEDBACKI_VPROC_HPP)(GLuint,GLenum,GLuint,GLint *);
static inline void GetTransformFeedbacki_v(GLuint xfb1,GLenum pname1,GLuint index1,GLint * param1)
{
	static PFNGLGETTRANSFORMFEEDBACKI_VPROC_HPP fn=reinterpret_cast<PFNGLGETTRANSFORMFEEDBACKI_VPROC_HPP>(_impl::_get_proc_address("glGetTransformFeedbacki_v","GL_ARB_direct_state_access"));
	 fn(xfb1,pname1,index1,param1);
}
typedef void (*PFNGLGETTRANSFORMFEEDBACKIVPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetTransformFeedbackiv(GLuint xfb1,GLenum pname1,GLint * param1)
{
	static PFNGLGETTRANSFORMFEEDBACKIVPROC_HPP fn=reinterpret_cast<PFNGLGETTRANSFORMFEEDBACKIVPROC_HPP>(_impl::_get_proc_address("glGetTransformFeedbackiv","GL_ARB_direct_state_access"));
	 fn(xfb1,pname1,param1);
}
typedef void (*PFNGLGETVERTEXARRAYINDEXED64IVPROC_HPP)(GLuint,GLuint,GLenum,GLint64 *);
static inline void GetVertexArrayIndexed64iv(GLuint vaobj1,GLuint index1,GLenum pname1,GLint64 * param1)
{
	static PFNGLGETVERTEXARRAYINDEXED64IVPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXARRAYINDEXED64IVPROC_HPP>(_impl::_get_proc_address("glGetVertexArrayIndexed64iv","GL_ARB_direct_state_access"));
	 fn(vaobj1,index1,pname1,param1);
}
typedef void (*PFNGLGETVERTEXARRAYINDEXEDIVPROC_HPP)(GLuint,GLuint,GLenum,GLint *);
static inline void GetVertexArrayIndexediv(GLuint vaobj1,GLuint index1,GLenum pname1,GLint * param1)
{
	static PFNGLGETVERTEXARRAYINDEXEDIVPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXARRAYINDEXEDIVPROC_HPP>(_impl::_get_proc_address("glGetVertexArrayIndexediv","GL_ARB_direct_state_access"));
	 fn(vaobj1,index1,pname1,param1);
}
typedef void (*PFNGLGETVERTEXARRAYIVPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetVertexArrayiv(GLuint vaobj1,GLenum pname1,GLint * param1)
{
	static PFNGLGETVERTEXARRAYIVPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXARRAYIVPROC_HPP>(_impl::_get_proc_address("glGetVertexArrayiv","GL_ARB_direct_state_access"));
	 fn(vaobj1,pname1,param1);
}
typedef void (*PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC_HPP)(GLuint,GLsizei,const GLenum *);
static inline void InvalidateNamedFramebufferData(GLuint framebuffer1,GLsizei numAttachments1,const GLenum * attachments1)
{
	static PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC_HPP fn=reinterpret_cast<PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC_HPP>(_impl::_get_proc_address("glInvalidateNamedFramebufferData","GL_ARB_direct_state_access"));
	 fn(framebuffer1,numAttachments1,attachments1);
}
typedef void (*PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC_HPP)(GLuint,GLsizei,const GLenum *,GLint,GLint,GLsizei,GLsizei);
static inline void InvalidateNamedFramebufferSubData(GLuint framebuffer1,GLsizei numAttachments1,const GLenum * attachments1,GLint x1,GLint y1,GLsizei width1,GLsizei height1)
{
	static PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC_HPP fn=reinterpret_cast<PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC_HPP>(_impl::_get_proc_address("glInvalidateNamedFramebufferSubData","GL_ARB_direct_state_access"));
	 fn(framebuffer1,numAttachments1,attachments1,x1,y1,width1,height1);
}
typedef void * (*PFNGLMAPNAMEDBUFFERPROC_HPP)(GLuint,GLenum);
static inline void * MapNamedBuffer(GLuint buffer1,GLenum access1)
{
	static PFNGLMAPNAMEDBUFFERPROC_HPP fn=reinterpret_cast<PFNGLMAPNAMEDBUFFERPROC_HPP>(_impl::_get_proc_address("glMapNamedBuffer","GL_ARB_direct_state_access"));
	return fn(buffer1,access1);
}
typedef void * (*PFNGLMAPNAMEDBUFFERRANGEPROC_HPP)(GLuint,GLintptr,GLsizei,GLbitfield);
static inline void * MapNamedBufferRange(GLuint buffer1,GLintptr offset1,GLsizei length1,GLbitfield access1)
{
	static PFNGLMAPNAMEDBUFFERRANGEPROC_HPP fn=reinterpret_cast<PFNGLMAPNAMEDBUFFERRANGEPROC_HPP>(_impl::_get_proc_address("glMapNamedBufferRange","GL_ARB_direct_state_access"));
	return fn(buffer1,offset1,length1,access1);
}
typedef void (*PFNGLNAMEDBUFFERDATAPROC_HPP)(GLuint,GLsizei,const void *,GLenum);
static inline void NamedBufferData(GLuint buffer1,GLsizei size1,const void * data1,GLenum usage1)
{
	static PFNGLNAMEDBUFFERDATAPROC_HPP fn=reinterpret_cast<PFNGLNAMEDBUFFERDATAPROC_HPP>(_impl::_get_proc_address("glNamedBufferData","GL_ARB_direct_state_access"));
	 fn(buffer1,size1,data1,usage1);
}
typedef void (*PFNGLNAMEDBUFFERSTORAGEPROC_HPP)(GLuint,GLsizei,const void *,GLbitfield);
static inline void NamedBufferStorage(GLuint buffer1,GLsizei size1,const void * data1,GLbitfield flags1)
{
	static PFNGLNAMEDBUFFERSTORAGEPROC_HPP fn=reinterpret_cast<PFNGLNAMEDBUFFERSTORAGEPROC_HPP>(_impl::_get_proc_address("glNamedBufferStorage","GL_ARB_direct_state_access"));
	 fn(buffer1,size1,data1,flags1);
}
typedef void (*PFNGLNAMEDBUFFERSUBDATAPROC_HPP)(GLuint,GLintptr,GLsizei,const void *);
static inline void NamedBufferSubData(GLuint buffer1,GLintptr offset1,GLsizei size1,const void * data1)
{
	static PFNGLNAMEDBUFFERSUBDATAPROC_HPP fn=reinterpret_cast<PFNGLNAMEDBUFFERSUBDATAPROC_HPP>(_impl::_get_proc_address("glNamedBufferSubData","GL_ARB_direct_state_access"));
	 fn(buffer1,offset1,size1,data1);
}
typedef void (*PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC_HPP)(GLuint,GLenum);
static inline void NamedFramebufferDrawBuffer(GLuint framebuffer1,GLenum buf1)
{
	static PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC_HPP fn=reinterpret_cast<PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC_HPP>(_impl::_get_proc_address("glNamedFramebufferDrawBuffer","GL_ARB_direct_state_access"));
	 fn(framebuffer1,buf1);
}
typedef void (*PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC_HPP)(GLuint,GLsizei,const GLenum *);
static inline void NamedFramebufferDrawBuffers(GLuint framebuffer1,GLsizei n1,const GLenum * bufs1)
{
	static PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC_HPP fn=reinterpret_cast<PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC_HPP>(_impl::_get_proc_address("glNamedFramebufferDrawBuffers","GL_ARB_direct_state_access"));
	 fn(framebuffer1,n1,bufs1);
}
typedef void (*PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC_HPP)(GLuint,GLenum,GLint);
static inline void NamedFramebufferParameteri(GLuint framebuffer1,GLenum pname1,GLint param1)
{
	static PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC_HPP fn=reinterpret_cast<PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC_HPP>(_impl::_get_proc_address("glNamedFramebufferParameteri","GL_ARB_direct_state_access"));
	 fn(framebuffer1,pname1,param1);
}
typedef void (*PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC_HPP)(GLuint,GLenum);
static inline void NamedFramebufferReadBuffer(GLuint framebuffer1,GLenum src1)
{
	static PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC_HPP fn=reinterpret_cast<PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC_HPP>(_impl::_get_proc_address("glNamedFramebufferReadBuffer","GL_ARB_direct_state_access"));
	 fn(framebuffer1,src1);
}
typedef void (*PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC_HPP)(GLuint,GLenum,GLenum,GLuint);
static inline void NamedFramebufferRenderbuffer(GLuint framebuffer1,GLenum attachment1,GLenum renderbuffertarget1,GLuint renderbuffer1)
{
	static PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC_HPP fn=reinterpret_cast<PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC_HPP>(_impl::_get_proc_address("glNamedFramebufferRenderbuffer","GL_ARB_direct_state_access"));
	 fn(framebuffer1,attachment1,renderbuffertarget1,renderbuffer1);
}
typedef void (*PFNGLNAMEDFRAMEBUFFERTEXTUREPROC_HPP)(GLuint,GLenum,GLuint,GLint);
static inline void NamedFramebufferTexture(GLuint framebuffer1,GLenum attachment1,GLuint texture1,GLint level1)
{
	static PFNGLNAMEDFRAMEBUFFERTEXTUREPROC_HPP fn=reinterpret_cast<PFNGLNAMEDFRAMEBUFFERTEXTUREPROC_HPP>(_impl::_get_proc_address("glNamedFramebufferTexture","GL_ARB_direct_state_access"));
	 fn(framebuffer1,attachment1,texture1,level1);
}
typedef void (*PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC_HPP)(GLuint,GLenum,GLuint,GLint,GLint);
static inline void NamedFramebufferTextureLayer(GLuint framebuffer1,GLenum attachment1,GLuint texture1,GLint level1,GLint layer1)
{
	static PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC_HPP fn=reinterpret_cast<PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC_HPP>(_impl::_get_proc_address("glNamedFramebufferTextureLayer","GL_ARB_direct_state_access"));
	 fn(framebuffer1,attachment1,texture1,level1,layer1);
}
typedef void (*PFNGLNAMEDRENDERBUFFERSTORAGEPROC_HPP)(GLuint,GLenum,GLsizei,GLsizei);
static inline void NamedRenderbufferStorage(GLuint renderbuffer1,GLenum internalformat1,GLsizei width1,GLsizei height1)
{
	static PFNGLNAMEDRENDERBUFFERSTORAGEPROC_HPP fn=reinterpret_cast<PFNGLNAMEDRENDERBUFFERSTORAGEPROC_HPP>(_impl::_get_proc_address("glNamedRenderbufferStorage","GL_ARB_direct_state_access"));
	 fn(renderbuffer1,internalformat1,width1,height1);
}
typedef void (*PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC_HPP)(GLuint,GLsizei,GLenum,GLsizei,GLsizei);
static inline void NamedRenderbufferStorageMultisample(GLuint renderbuffer1,GLsizei samples1,GLenum internalformat1,GLsizei width1,GLsizei height1)
{
	static PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC_HPP fn=reinterpret_cast<PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC_HPP>(_impl::_get_proc_address("glNamedRenderbufferStorageMultisample","GL_ARB_direct_state_access"));
	 fn(renderbuffer1,samples1,internalformat1,width1,height1);
}
typedef void (*PFNGLTEXTUREBUFFERPROC_HPP)(GLuint,GLenum,GLuint);
static inline void TextureBuffer(GLuint texture1,GLenum internalformat1,GLuint buffer1)
{
	static PFNGLTEXTUREBUFFERPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREBUFFERPROC_HPP>(_impl::_get_proc_address("glTextureBuffer","GL_ARB_direct_state_access"));
	 fn(texture1,internalformat1,buffer1);
}
typedef void (*PFNGLTEXTUREBUFFERRANGEPROC_HPP)(GLuint,GLenum,GLuint,GLintptr,GLsizei);
static inline void TextureBufferRange(GLuint texture1,GLenum internalformat1,GLuint buffer1,GLintptr offset1,GLsizei size1)
{
	static PFNGLTEXTUREBUFFERRANGEPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREBUFFERRANGEPROC_HPP>(_impl::_get_proc_address("glTextureBufferRange","GL_ARB_direct_state_access"));
	 fn(texture1,internalformat1,buffer1,offset1,size1);
}
typedef void (*PFNGLTEXTUREPARAMETERIIVPROC_HPP)(GLuint,GLenum,const GLint *);
static inline void TextureParameterIiv(GLuint texture1,GLenum pname1,const GLint * params1)
{
	static PFNGLTEXTUREPARAMETERIIVPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREPARAMETERIIVPROC_HPP>(_impl::_get_proc_address("glTextureParameterIiv","GL_ARB_direct_state_access"));
	 fn(texture1,pname1,params1);
}
typedef void (*PFNGLTEXTUREPARAMETERIUIVPROC_HPP)(GLuint,GLenum,const GLuint *);
static inline void TextureParameterIuiv(GLuint texture1,GLenum pname1,const GLuint * params1)
{
	static PFNGLTEXTUREPARAMETERIUIVPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREPARAMETERIUIVPROC_HPP>(_impl::_get_proc_address("glTextureParameterIuiv","GL_ARB_direct_state_access"));
	 fn(texture1,pname1,params1);
}
typedef void (*PFNGLTEXTUREPARAMETERFPROC_HPP)(GLuint,GLenum,GLfloat);
static inline void TextureParameterf(GLuint texture1,GLenum pname1,GLfloat param1)
{
	static PFNGLTEXTUREPARAMETERFPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREPARAMETERFPROC_HPP>(_impl::_get_proc_address("glTextureParameterf","GL_ARB_direct_state_access"));
	 fn(texture1,pname1,param1);
}
typedef void (*PFNGLTEXTUREPARAMETERFVPROC_HPP)(GLuint,GLenum,const GLfloat *);
static inline void TextureParameterfv(GLuint texture1,GLenum pname1,const GLfloat * param1)
{
	static PFNGLTEXTUREPARAMETERFVPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREPARAMETERFVPROC_HPP>(_impl::_get_proc_address("glTextureParameterfv","GL_ARB_direct_state_access"));
	 fn(texture1,pname1,param1);
}
typedef void (*PFNGLTEXTUREPARAMETERIPROC_HPP)(GLuint,GLenum,GLint);
static inline void TextureParameteri(GLuint texture1,GLenum pname1,GLint param1)
{
	static PFNGLTEXTUREPARAMETERIPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREPARAMETERIPROC_HPP>(_impl::_get_proc_address("glTextureParameteri","GL_ARB_direct_state_access"));
	 fn(texture1,pname1,param1);
}
typedef void (*PFNGLTEXTUREPARAMETERIVPROC_HPP)(GLuint,GLenum,const GLint *);
static inline void TextureParameteriv(GLuint texture1,GLenum pname1,const GLint * param1)
{
	static PFNGLTEXTUREPARAMETERIVPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREPARAMETERIVPROC_HPP>(_impl::_get_proc_address("glTextureParameteriv","GL_ARB_direct_state_access"));
	 fn(texture1,pname1,param1);
}
typedef void (*PFNGLTEXTURESTORAGE1DPROC_HPP)(GLuint,GLsizei,GLenum,GLsizei);
static inline void TextureStorage1D(GLuint texture1,GLsizei levels1,GLenum internalformat1,GLsizei width1)
{
	static PFNGLTEXTURESTORAGE1DPROC_HPP fn=reinterpret_cast<PFNGLTEXTURESTORAGE1DPROC_HPP>(_impl::_get_proc_address("glTextureStorage1D","GL_ARB_direct_state_access"));
	 fn(texture1,levels1,internalformat1,width1);
}
typedef void (*PFNGLTEXTURESTORAGE2DPROC_HPP)(GLuint,GLsizei,GLenum,GLsizei,GLsizei);
static inline void TextureStorage2D(GLuint texture1,GLsizei levels1,GLenum internalformat1,GLsizei width1,GLsizei height1)
{
	static PFNGLTEXTURESTORAGE2DPROC_HPP fn=reinterpret_cast<PFNGLTEXTURESTORAGE2DPROC_HPP>(_impl::_get_proc_address("glTextureStorage2D","GL_ARB_direct_state_access"));
	 fn(texture1,levels1,internalformat1,width1,height1);
}
typedef void (*PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC_HPP)(GLuint,GLsizei,GLenum,GLsizei,GLsizei,GLboolean);
static inline void TextureStorage2DMultisample(GLuint texture1,GLsizei samples1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLboolean fixedsamplelocations1)
{
	static PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC_HPP fn=reinterpret_cast<PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC_HPP>(_impl::_get_proc_address("glTextureStorage2DMultisample","GL_ARB_direct_state_access"));
	 fn(texture1,samples1,internalformat1,width1,height1,fixedsamplelocations1);
}
typedef void (*PFNGLTEXTURESTORAGE3DPROC_HPP)(GLuint,GLsizei,GLenum,GLsizei,GLsizei,GLsizei);
static inline void TextureStorage3D(GLuint texture1,GLsizei levels1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLsizei depth1)
{
	static PFNGLTEXTURESTORAGE3DPROC_HPP fn=reinterpret_cast<PFNGLTEXTURESTORAGE3DPROC_HPP>(_impl::_get_proc_address("glTextureStorage3D","GL_ARB_direct_state_access"));
	 fn(texture1,levels1,internalformat1,width1,height1,depth1);
}
typedef void (*PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC_HPP)(GLuint,GLsizei,GLenum,GLsizei,GLsizei,GLsizei,GLboolean);
static inline void TextureStorage3DMultisample(GLuint texture1,GLsizei samples1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLsizei depth1,GLboolean fixedsamplelocations1)
{
	static PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC_HPP fn=reinterpret_cast<PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC_HPP>(_impl::_get_proc_address("glTextureStorage3DMultisample","GL_ARB_direct_state_access"));
	 fn(texture1,samples1,internalformat1,width1,height1,depth1,fixedsamplelocations1);
}
typedef void (*PFNGLTEXTURESUBIMAGE1DPROC_HPP)(GLuint,GLint,GLint,GLsizei,GLenum,GLenum,const void *);
static inline void TextureSubImage1D(GLuint texture1,GLint level1,GLint xoffset1,GLsizei width1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLTEXTURESUBIMAGE1DPROC_HPP fn=reinterpret_cast<PFNGLTEXTURESUBIMAGE1DPROC_HPP>(_impl::_get_proc_address("glTextureSubImage1D","GL_ARB_direct_state_access"));
	 fn(texture1,level1,xoffset1,width1,format1,type1,pixels1);
}
typedef void (*PFNGLTEXTURESUBIMAGE2DPROC_HPP)(GLuint,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,const void *);
static inline void TextureSubImage2D(GLuint texture1,GLint level1,GLint xoffset1,GLint yoffset1,GLsizei width1,GLsizei height1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLTEXTURESUBIMAGE2DPROC_HPP fn=reinterpret_cast<PFNGLTEXTURESUBIMAGE2DPROC_HPP>(_impl::_get_proc_address("glTextureSubImage2D","GL_ARB_direct_state_access"));
	 fn(texture1,level1,xoffset1,yoffset1,width1,height1,format1,type1,pixels1);
}
typedef void (*PFNGLTEXTURESUBIMAGE3DPROC_HPP)(GLuint,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLenum,const void *);
static inline void TextureSubImage3D(GLuint texture1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLsizei width1,GLsizei height1,GLsizei depth1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLTEXTURESUBIMAGE3DPROC_HPP fn=reinterpret_cast<PFNGLTEXTURESUBIMAGE3DPROC_HPP>(_impl::_get_proc_address("glTextureSubImage3D","GL_ARB_direct_state_access"));
	 fn(texture1,level1,xoffset1,yoffset1,zoffset1,width1,height1,depth1,format1,type1,pixels1);
}
typedef void (*PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC_HPP)(GLuint,GLuint,GLuint);
static inline void TransformFeedbackBufferBase(GLuint xfb1,GLuint index1,GLuint buffer1)
{
	static PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC_HPP fn=reinterpret_cast<PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC_HPP>(_impl::_get_proc_address("glTransformFeedbackBufferBase","GL_ARB_direct_state_access"));
	 fn(xfb1,index1,buffer1);
}
typedef void (*PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC_HPP)(GLuint,GLuint,GLuint,GLintptr,GLsizei);
static inline void TransformFeedbackBufferRange(GLuint xfb1,GLuint index1,GLuint buffer1,GLintptr offset1,GLsizei size1)
{
	static PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC_HPP fn=reinterpret_cast<PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC_HPP>(_impl::_get_proc_address("glTransformFeedbackBufferRange","GL_ARB_direct_state_access"));
	 fn(xfb1,index1,buffer1,offset1,size1);
}
typedef GLboolean (*PFNGLUNMAPNAMEDBUFFERPROC_HPP)(GLuint);
static inline GLboolean UnmapNamedBuffer(GLuint buffer1)
{
	static PFNGLUNMAPNAMEDBUFFERPROC_HPP fn=reinterpret_cast<PFNGLUNMAPNAMEDBUFFERPROC_HPP>(_impl::_get_proc_address("glUnmapNamedBuffer","GL_ARB_direct_state_access"));
	return fn(buffer1);
}
typedef void (*PFNGLVERTEXARRAYATTRIBBINDINGPROC_HPP)(GLuint,GLuint,GLuint);
static inline void VertexArrayAttribBinding(GLuint vaobj1,GLuint attribindex1,GLuint bindingindex1)
{
	static PFNGLVERTEXARRAYATTRIBBINDINGPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYATTRIBBINDINGPROC_HPP>(_impl::_get_proc_address("glVertexArrayAttribBinding","GL_ARB_direct_state_access"));
	 fn(vaobj1,attribindex1,bindingindex1);
}
typedef void (*PFNGLVERTEXARRAYATTRIBFORMATPROC_HPP)(GLuint,GLuint,GLint,GLenum,GLboolean,GLuint);
static inline void VertexArrayAttribFormat(GLuint vaobj1,GLuint attribindex1,GLint size1,GLenum type1,GLboolean normalized1,GLuint relativeoffset1)
{
	static PFNGLVERTEXARRAYATTRIBFORMATPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYATTRIBFORMATPROC_HPP>(_impl::_get_proc_address("glVertexArrayAttribFormat","GL_ARB_direct_state_access"));
	 fn(vaobj1,attribindex1,size1,type1,normalized1,relativeoffset1);
}
typedef void (*PFNGLVERTEXARRAYATTRIBIFORMATPROC_HPP)(GLuint,GLuint,GLint,GLenum,GLuint);
static inline void VertexArrayAttribIFormat(GLuint vaobj1,GLuint attribindex1,GLint size1,GLenum type1,GLuint relativeoffset1)
{
	static PFNGLVERTEXARRAYATTRIBIFORMATPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYATTRIBIFORMATPROC_HPP>(_impl::_get_proc_address("glVertexArrayAttribIFormat","GL_ARB_direct_state_access"));
	 fn(vaobj1,attribindex1,size1,type1,relativeoffset1);
}
typedef void (*PFNGLVERTEXARRAYATTRIBLFORMATPROC_HPP)(GLuint,GLuint,GLint,GLenum,GLuint);
static inline void VertexArrayAttribLFormat(GLuint vaobj1,GLuint attribindex1,GLint size1,GLenum type1,GLuint relativeoffset1)
{
	static PFNGLVERTEXARRAYATTRIBLFORMATPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYATTRIBLFORMATPROC_HPP>(_impl::_get_proc_address("glVertexArrayAttribLFormat","GL_ARB_direct_state_access"));
	 fn(vaobj1,attribindex1,size1,type1,relativeoffset1);
}
typedef void (*PFNGLVERTEXARRAYBINDINGDIVISORPROC_HPP)(GLuint,GLuint,GLuint);
static inline void VertexArrayBindingDivisor(GLuint vaobj1,GLuint bindingindex1,GLuint divisor1)
{
	static PFNGLVERTEXARRAYBINDINGDIVISORPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYBINDINGDIVISORPROC_HPP>(_impl::_get_proc_address("glVertexArrayBindingDivisor","GL_ARB_direct_state_access"));
	 fn(vaobj1,bindingindex1,divisor1);
}
typedef void (*PFNGLVERTEXARRAYELEMENTBUFFERPROC_HPP)(GLuint,GLuint);
static inline void VertexArrayElementBuffer(GLuint vaobj1,GLuint buffer1)
{
	static PFNGLVERTEXARRAYELEMENTBUFFERPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYELEMENTBUFFERPROC_HPP>(_impl::_get_proc_address("glVertexArrayElementBuffer","GL_ARB_direct_state_access"));
	 fn(vaobj1,buffer1);
}
typedef void (*PFNGLVERTEXARRAYVERTEXBUFFERPROC_HPP)(GLuint,GLuint,GLuint,GLintptr,GLsizei);
static inline void VertexArrayVertexBuffer(GLuint vaobj1,GLuint bindingindex1,GLuint buffer1,GLintptr offset1,GLsizei stride1)
{
	static PFNGLVERTEXARRAYVERTEXBUFFERPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYVERTEXBUFFERPROC_HPP>(_impl::_get_proc_address("glVertexArrayVertexBuffer","GL_ARB_direct_state_access"));
	 fn(vaobj1,bindingindex1,buffer1,offset1,stride1);
}
typedef void (*PFNGLVERTEXARRAYVERTEXBUFFERSPROC_HPP)(GLuint,GLuint,GLsizei,const GLuint *,const GLintptr *,const GLsizei *);
static inline void VertexArrayVertexBuffers(GLuint vaobj1,GLuint first1,GLsizei count1,const GLuint * buffers1,const GLintptr * offsets1,const GLsizei * strides1)
{
	static PFNGLVERTEXARRAYVERTEXBUFFERSPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYVERTEXBUFFERSPROC_HPP>(_impl::_get_proc_address("glVertexArrayVertexBuffers","GL_ARB_direct_state_access"));
	 fn(vaobj1,first1,count1,buffers1,offsets1,strides1);
}}
#endif

#ifndef GL_ARB_draw_buffers
#define GL_ARB_draw_buffers
#ifndef GL_MAX_DRAW_BUFFERS_ARB
#define GL_MAX_DRAW_BUFFERS_ARB 0x8824
#endif //GL_MAX_DRAW_BUFFERS_ARB
#ifndef GL_DRAW_BUFFER0_ARB
#define GL_DRAW_BUFFER0_ARB 0x8825
#endif //GL_DRAW_BUFFER0_ARB
#ifndef GL_DRAW_BUFFER1_ARB
#define GL_DRAW_BUFFER1_ARB 0x8826
#endif //GL_DRAW_BUFFER1_ARB
#ifndef GL_DRAW_BUFFER2_ARB
#define GL_DRAW_BUFFER2_ARB 0x8827
#endif //GL_DRAW_BUFFER2_ARB
#ifndef GL_DRAW_BUFFER3_ARB
#define GL_DRAW_BUFFER3_ARB 0x8828
#endif //GL_DRAW_BUFFER3_ARB
#ifndef GL_DRAW_BUFFER4_ARB
#define GL_DRAW_BUFFER4_ARB 0x8829
#endif //GL_DRAW_BUFFER4_ARB
#ifndef GL_DRAW_BUFFER5_ARB
#define GL_DRAW_BUFFER5_ARB 0x882A
#endif //GL_DRAW_BUFFER5_ARB
#ifndef GL_DRAW_BUFFER6_ARB
#define GL_DRAW_BUFFER6_ARB 0x882B
#endif //GL_DRAW_BUFFER6_ARB
#ifndef GL_DRAW_BUFFER7_ARB
#define GL_DRAW_BUFFER7_ARB 0x882C
#endif //GL_DRAW_BUFFER7_ARB
#ifndef GL_DRAW_BUFFER8_ARB
#define GL_DRAW_BUFFER8_ARB 0x882D
#endif //GL_DRAW_BUFFER8_ARB
#ifndef GL_DRAW_BUFFER9_ARB
#define GL_DRAW_BUFFER9_ARB 0x882E
#endif //GL_DRAW_BUFFER9_ARB
#ifndef GL_DRAW_BUFFER10_ARB
#define GL_DRAW_BUFFER10_ARB 0x882F
#endif //GL_DRAW_BUFFER10_ARB
#ifndef GL_DRAW_BUFFER11_ARB
#define GL_DRAW_BUFFER11_ARB 0x8830
#endif //GL_DRAW_BUFFER11_ARB
#ifndef GL_DRAW_BUFFER12_ARB
#define GL_DRAW_BUFFER12_ARB 0x8831
#endif //GL_DRAW_BUFFER12_ARB
#ifndef GL_DRAW_BUFFER13_ARB
#define GL_DRAW_BUFFER13_ARB 0x8832
#endif //GL_DRAW_BUFFER13_ARB
#ifndef GL_DRAW_BUFFER14_ARB
#define GL_DRAW_BUFFER14_ARB 0x8833
#endif //GL_DRAW_BUFFER14_ARB
#ifndef GL_DRAW_BUFFER15_ARB
#define GL_DRAW_BUFFER15_ARB 0x8834
#endif //GL_DRAW_BUFFER15_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLDRAWBUFFERSARBPROC_HPP)(GLsizei,const GLenum *);
static inline void DrawBuffersARB(GLsizei n1,const GLenum * bufs1)
{
	static PFNGLDRAWBUFFERSARBPROC_HPP fn=reinterpret_cast<PFNGLDRAWBUFFERSARBPROC_HPP>(_impl::_get_proc_address("glDrawBuffersARB","GL_ARB_draw_buffers"));
	 fn(n1,bufs1);
}}
#endif

#ifndef GL_ARB_draw_buffers_blend
#define GL_ARB_draw_buffers_blend
extern "C" {
}
namespace gl{

typedef void (*PFNGLBLENDEQUATIONSEPARATEIARBPROC_HPP)(GLuint,GLenum,GLenum);
static inline void BlendEquationSeparateiARB(GLuint buf1,GLenum modeRGB1,GLenum modeAlpha1)
{
	static PFNGLBLENDEQUATIONSEPARATEIARBPROC_HPP fn=reinterpret_cast<PFNGLBLENDEQUATIONSEPARATEIARBPROC_HPP>(_impl::_get_proc_address("glBlendEquationSeparateiARB","GL_ARB_draw_buffers_blend"));
	 fn(buf1,modeRGB1,modeAlpha1);
}
typedef void (*PFNGLBLENDEQUATIONIARBPROC_HPP)(GLuint,GLenum);
static inline void BlendEquationiARB(GLuint buf1,GLenum mode1)
{
	static PFNGLBLENDEQUATIONIARBPROC_HPP fn=reinterpret_cast<PFNGLBLENDEQUATIONIARBPROC_HPP>(_impl::_get_proc_address("glBlendEquationiARB","GL_ARB_draw_buffers_blend"));
	 fn(buf1,mode1);
}
typedef void (*PFNGLBLENDFUNCSEPARATEIARBPROC_HPP)(GLuint,GLenum,GLenum,GLenum,GLenum);
static inline void BlendFuncSeparateiARB(GLuint buf1,GLenum srcRGB1,GLenum dstRGB1,GLenum srcAlpha1,GLenum dstAlpha1)
{
	static PFNGLBLENDFUNCSEPARATEIARBPROC_HPP fn=reinterpret_cast<PFNGLBLENDFUNCSEPARATEIARBPROC_HPP>(_impl::_get_proc_address("glBlendFuncSeparateiARB","GL_ARB_draw_buffers_blend"));
	 fn(buf1,srcRGB1,dstRGB1,srcAlpha1,dstAlpha1);
}
typedef void (*PFNGLBLENDFUNCIARBPROC_HPP)(GLuint,GLenum,GLenum);
static inline void BlendFunciARB(GLuint buf1,GLenum src1,GLenum dst1)
{
	static PFNGLBLENDFUNCIARBPROC_HPP fn=reinterpret_cast<PFNGLBLENDFUNCIARBPROC_HPP>(_impl::_get_proc_address("glBlendFunciARB","GL_ARB_draw_buffers_blend"));
	 fn(buf1,src1,dst1);
}}
#endif

#ifndef GL_ARB_draw_elements_base_vertex
#define GL_ARB_draw_elements_base_vertex
extern "C" {
}
namespace gl{

typedef void (*PFNGLDRAWELEMENTSBASEVERTEXPROC_HPP)(GLenum,GLsizei,GLenum,const void *,GLint);
static inline void DrawElementsBaseVertex(GLenum mode1,GLsizei count1,GLenum type1,const void * indices1,GLint basevertex1)
{
	static PFNGLDRAWELEMENTSBASEVERTEXPROC_HPP fn=reinterpret_cast<PFNGLDRAWELEMENTSBASEVERTEXPROC_HPP>(_impl::_get_proc_address("glDrawElementsBaseVertex","GL_ARB_draw_elements_base_vertex"));
	 fn(mode1,count1,type1,indices1,basevertex1);
}
typedef void (*PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC_HPP)(GLenum,GLsizei,GLenum,const void *,GLsizei,GLint);
static inline void DrawElementsInstancedBaseVertex(GLenum mode1,GLsizei count1,GLenum type1,const void * indices1,GLsizei instancecount1,GLint basevertex1)
{
	static PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC_HPP fn=reinterpret_cast<PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC_HPP>(_impl::_get_proc_address("glDrawElementsInstancedBaseVertex","GL_ARB_draw_elements_base_vertex"));
	 fn(mode1,count1,type1,indices1,instancecount1,basevertex1);
}
typedef void (*PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC_HPP)(GLenum,GLuint,GLuint,GLsizei,GLenum,const void *,GLint);
static inline void DrawRangeElementsBaseVertex(GLenum mode1,GLuint start1,GLuint end1,GLsizei count1,GLenum type1,const void * indices1,GLint basevertex1)
{
	static PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC_HPP fn=reinterpret_cast<PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC_HPP>(_impl::_get_proc_address("glDrawRangeElementsBaseVertex","GL_ARB_draw_elements_base_vertex"));
	 fn(mode1,start1,end1,count1,type1,indices1,basevertex1);
}
typedef void (*PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC_HPP)(GLenum,const GLsizei *,GLenum,const void *const*,GLsizei,const GLint *);
static inline void MultiDrawElementsBaseVertex(GLenum mode1,const GLsizei * count1,GLenum type1,const void *const* indices1,GLsizei drawcount1,const GLint * basevertex1)
{
	static PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC_HPP fn=reinterpret_cast<PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC_HPP>(_impl::_get_proc_address("glMultiDrawElementsBaseVertex","GL_ARB_draw_elements_base_vertex"));
	 fn(mode1,count1,type1,indices1,drawcount1,basevertex1);
}}
#endif

#ifndef GL_ARB_draw_indirect
#define GL_ARB_draw_indirect
#ifndef GL_DRAW_INDIRECT_BUFFER
#define GL_DRAW_INDIRECT_BUFFER 0x8F3F
#endif //GL_DRAW_INDIRECT_BUFFER
#ifndef GL_DRAW_INDIRECT_BUFFER_BINDING
#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43
#endif //GL_DRAW_INDIRECT_BUFFER_BINDING
extern "C" {
}
namespace gl{

typedef void (*PFNGLDRAWARRAYSINDIRECTPROC_HPP)(GLenum,const void *);
static inline void DrawArraysIndirect(GLenum mode1,const void * indirect1)
{
	static PFNGLDRAWARRAYSINDIRECTPROC_HPP fn=reinterpret_cast<PFNGLDRAWARRAYSINDIRECTPROC_HPP>(_impl::_get_proc_address("glDrawArraysIndirect","GL_ARB_draw_indirect"));
	 fn(mode1,indirect1);
}
typedef void (*PFNGLDRAWELEMENTSINDIRECTPROC_HPP)(GLenum,GLenum,const void *);
static inline void DrawElementsIndirect(GLenum mode1,GLenum type1,const void * indirect1)
{
	static PFNGLDRAWELEMENTSINDIRECTPROC_HPP fn=reinterpret_cast<PFNGLDRAWELEMENTSINDIRECTPROC_HPP>(_impl::_get_proc_address("glDrawElementsIndirect","GL_ARB_draw_indirect"));
	 fn(mode1,type1,indirect1);
}}
#endif

#ifndef GL_ARB_draw_instanced
#define GL_ARB_draw_instanced
extern "C" {
}
namespace gl{

typedef void (*PFNGLDRAWARRAYSINSTANCEDARBPROC_HPP)(GLenum,GLint,GLsizei,GLsizei);
static inline void DrawArraysInstancedARB(GLenum mode1,GLint first1,GLsizei count1,GLsizei primcount1)
{
	static PFNGLDRAWARRAYSINSTANCEDARBPROC_HPP fn=reinterpret_cast<PFNGLDRAWARRAYSINSTANCEDARBPROC_HPP>(_impl::_get_proc_address("glDrawArraysInstancedARB","GL_ARB_draw_instanced"));
	 fn(mode1,first1,count1,primcount1);
}
typedef void (*PFNGLDRAWELEMENTSINSTANCEDARBPROC_HPP)(GLenum,GLsizei,GLenum,const void *,GLsizei);
static inline void DrawElementsInstancedARB(GLenum mode1,GLsizei count1,GLenum type1,const void * indices1,GLsizei primcount1)
{
	static PFNGLDRAWELEMENTSINSTANCEDARBPROC_HPP fn=reinterpret_cast<PFNGLDRAWELEMENTSINSTANCEDARBPROC_HPP>(_impl::_get_proc_address("glDrawElementsInstancedARB","GL_ARB_draw_instanced"));
	 fn(mode1,count1,type1,indices1,primcount1);
}}
#endif

#ifndef GL_ARB_enhanced_layouts
#define GL_ARB_enhanced_layouts
#ifndef GL_TRANSFORM_FEEDBACK_BUFFER
#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
#endif //GL_TRANSFORM_FEEDBACK_BUFFER
#ifndef GL_LOCATION_COMPONENT
#define GL_LOCATION_COMPONENT 0x934A
#endif //GL_LOCATION_COMPONENT
#ifndef GL_TRANSFORM_FEEDBACK_BUFFER_INDEX
#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B
#endif //GL_TRANSFORM_FEEDBACK_BUFFER_INDEX
#ifndef GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE
#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C
#endif //GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_explicit_attrib_location
#define GL_ARB_explicit_attrib_location
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_explicit_uniform_location
#define GL_ARB_explicit_uniform_location
#ifndef GL_MAX_UNIFORM_LOCATIONS
#define GL_MAX_UNIFORM_LOCATIONS 0x826E
#endif //GL_MAX_UNIFORM_LOCATIONS
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_fragment_coord_conventions
#define GL_ARB_fragment_coord_conventions
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_fragment_layer_viewport
#define GL_ARB_fragment_layer_viewport
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_fragment_program
#define GL_ARB_fragment_program
#ifndef GL_PROGRAM_LENGTH_ARB
#define GL_PROGRAM_LENGTH_ARB 0x8627
#endif //GL_PROGRAM_LENGTH_ARB
#ifndef GL_PROGRAM_STRING_ARB
#define GL_PROGRAM_STRING_ARB 0x8628
#endif //GL_PROGRAM_STRING_ARB
#ifndef GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E
#endif //GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
#ifndef GL_MAX_PROGRAM_MATRICES_ARB
#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F
#endif //GL_MAX_PROGRAM_MATRICES_ARB
#ifndef GL_CURRENT_MATRIX_STACK_DEPTH_ARB
#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640
#endif //GL_CURRENT_MATRIX_STACK_DEPTH_ARB
#ifndef GL_CURRENT_MATRIX_ARB
#define GL_CURRENT_MATRIX_ARB 0x8641
#endif //GL_CURRENT_MATRIX_ARB
#ifndef GL_PROGRAM_ERROR_POSITION_ARB
#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B
#endif //GL_PROGRAM_ERROR_POSITION_ARB
#ifndef GL_PROGRAM_BINDING_ARB
#define GL_PROGRAM_BINDING_ARB 0x8677
#endif //GL_PROGRAM_BINDING_ARB
#ifndef GL_FRAGMENT_PROGRAM_ARB
#define GL_FRAGMENT_PROGRAM_ARB 0x8804
#endif //GL_FRAGMENT_PROGRAM_ARB
#ifndef GL_PROGRAM_ALU_INSTRUCTIONS_ARB
#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805
#endif //GL_PROGRAM_ALU_INSTRUCTIONS_ARB
#ifndef GL_PROGRAM_TEX_INSTRUCTIONS_ARB
#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806
#endif //GL_PROGRAM_TEX_INSTRUCTIONS_ARB
#ifndef GL_PROGRAM_TEX_INDIRECTIONS_ARB
#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807
#endif //GL_PROGRAM_TEX_INDIRECTIONS_ARB
#ifndef GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB
#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808
#endif //GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB
#ifndef GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB
#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809
#endif //GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB
#ifndef GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB
#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A
#endif //GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB
#ifndef GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB
#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B
#endif //GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB
#ifndef GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB
#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C
#endif //GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB
#ifndef GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB
#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D
#endif //GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB
#ifndef GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB
#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E
#endif //GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB
#ifndef GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB
#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F
#endif //GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB
#ifndef GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB
#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810
#endif //GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB
#ifndef GL_MAX_TEXTURE_COORDS_ARB
#define GL_MAX_TEXTURE_COORDS_ARB 0x8871
#endif //GL_MAX_TEXTURE_COORDS_ARB
#ifndef GL_MAX_TEXTURE_IMAGE_UNITS_ARB
#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872
#endif //GL_MAX_TEXTURE_IMAGE_UNITS_ARB
#ifndef GL_PROGRAM_ERROR_STRING_ARB
#define GL_PROGRAM_ERROR_STRING_ARB 0x8874
#endif //GL_PROGRAM_ERROR_STRING_ARB
#ifndef GL_PROGRAM_FORMAT_ASCII_ARB
#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875
#endif //GL_PROGRAM_FORMAT_ASCII_ARB
#ifndef GL_PROGRAM_FORMAT_ARB
#define GL_PROGRAM_FORMAT_ARB 0x8876
#endif //GL_PROGRAM_FORMAT_ARB
#ifndef GL_PROGRAM_INSTRUCTIONS_ARB
#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0
#endif //GL_PROGRAM_INSTRUCTIONS_ARB
#ifndef GL_MAX_PROGRAM_INSTRUCTIONS_ARB
#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1
#endif //GL_MAX_PROGRAM_INSTRUCTIONS_ARB
#ifndef GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB
#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2
#endif //GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB
#ifndef GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB
#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3
#endif //GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB
#ifndef GL_PROGRAM_TEMPORARIES_ARB
#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4
#endif //GL_PROGRAM_TEMPORARIES_ARB
#ifndef GL_MAX_PROGRAM_TEMPORARIES_ARB
#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5
#endif //GL_MAX_PROGRAM_TEMPORARIES_ARB
#ifndef GL_PROGRAM_NATIVE_TEMPORARIES_ARB
#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6
#endif //GL_PROGRAM_NATIVE_TEMPORARIES_ARB
#ifndef GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB
#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7
#endif //GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB
#ifndef GL_PROGRAM_PARAMETERS_ARB
#define GL_PROGRAM_PARAMETERS_ARB 0x88A8
#endif //GL_PROGRAM_PARAMETERS_ARB
#ifndef GL_MAX_PROGRAM_PARAMETERS_ARB
#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9
#endif //GL_MAX_PROGRAM_PARAMETERS_ARB
#ifndef GL_PROGRAM_NATIVE_PARAMETERS_ARB
#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA
#endif //GL_PROGRAM_NATIVE_PARAMETERS_ARB
#ifndef GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB
#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB
#endif //GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB
#ifndef GL_PROGRAM_ATTRIBS_ARB
#define GL_PROGRAM_ATTRIBS_ARB 0x88AC
#endif //GL_PROGRAM_ATTRIBS_ARB
#ifndef GL_MAX_PROGRAM_ATTRIBS_ARB
#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD
#endif //GL_MAX_PROGRAM_ATTRIBS_ARB
#ifndef GL_PROGRAM_NATIVE_ATTRIBS_ARB
#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE
#endif //GL_PROGRAM_NATIVE_ATTRIBS_ARB
#ifndef GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB
#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF
#endif //GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB
#ifndef GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB
#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4
#endif //GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB
#ifndef GL_MAX_PROGRAM_ENV_PARAMETERS_ARB
#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5
#endif //GL_MAX_PROGRAM_ENV_PARAMETERS_ARB
#ifndef GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB
#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6
#endif //GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB
#ifndef GL_TRANSPOSE_CURRENT_MATRIX_ARB
#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7
#endif //GL_TRANSPOSE_CURRENT_MATRIX_ARB
#ifndef GL_MATRIX0_ARB
#define GL_MATRIX0_ARB 0x88C0
#endif //GL_MATRIX0_ARB
#ifndef GL_MATRIX1_ARB
#define GL_MATRIX1_ARB 0x88C1
#endif //GL_MATRIX1_ARB
#ifndef GL_MATRIX2_ARB
#define GL_MATRIX2_ARB 0x88C2
#endif //GL_MATRIX2_ARB
#ifndef GL_MATRIX3_ARB
#define GL_MATRIX3_ARB 0x88C3
#endif //GL_MATRIX3_ARB
#ifndef GL_MATRIX4_ARB
#define GL_MATRIX4_ARB 0x88C4
#endif //GL_MATRIX4_ARB
#ifndef GL_MATRIX5_ARB
#define GL_MATRIX5_ARB 0x88C5
#endif //GL_MATRIX5_ARB
#ifndef GL_MATRIX6_ARB
#define GL_MATRIX6_ARB 0x88C6
#endif //GL_MATRIX6_ARB
#ifndef GL_MATRIX7_ARB
#define GL_MATRIX7_ARB 0x88C7
#endif //GL_MATRIX7_ARB
#ifndef GL_MATRIX8_ARB
#define GL_MATRIX8_ARB 0x88C8
#endif //GL_MATRIX8_ARB
#ifndef GL_MATRIX9_ARB
#define GL_MATRIX9_ARB 0x88C9
#endif //GL_MATRIX9_ARB
#ifndef GL_MATRIX10_ARB
#define GL_MATRIX10_ARB 0x88CA
#endif //GL_MATRIX10_ARB
#ifndef GL_MATRIX11_ARB
#define GL_MATRIX11_ARB 0x88CB
#endif //GL_MATRIX11_ARB
#ifndef GL_MATRIX12_ARB
#define GL_MATRIX12_ARB 0x88CC
#endif //GL_MATRIX12_ARB
#ifndef GL_MATRIX13_ARB
#define GL_MATRIX13_ARB 0x88CD
#endif //GL_MATRIX13_ARB
#ifndef GL_MATRIX14_ARB
#define GL_MATRIX14_ARB 0x88CE
#endif //GL_MATRIX14_ARB
#ifndef GL_MATRIX15_ARB
#define GL_MATRIX15_ARB 0x88CF
#endif //GL_MATRIX15_ARB
#ifndef GL_MATRIX16_ARB
#define GL_MATRIX16_ARB 0x88D0
#endif //GL_MATRIX16_ARB
#ifndef GL_MATRIX17_ARB
#define GL_MATRIX17_ARB 0x88D1
#endif //GL_MATRIX17_ARB
#ifndef GL_MATRIX18_ARB
#define GL_MATRIX18_ARB 0x88D2
#endif //GL_MATRIX18_ARB
#ifndef GL_MATRIX19_ARB
#define GL_MATRIX19_ARB 0x88D3
#endif //GL_MATRIX19_ARB
#ifndef GL_MATRIX20_ARB
#define GL_MATRIX20_ARB 0x88D4
#endif //GL_MATRIX20_ARB
#ifndef GL_MATRIX21_ARB
#define GL_MATRIX21_ARB 0x88D5
#endif //GL_MATRIX21_ARB
#ifndef GL_MATRIX22_ARB
#define GL_MATRIX22_ARB 0x88D6
#endif //GL_MATRIX22_ARB
#ifndef GL_MATRIX23_ARB
#define GL_MATRIX23_ARB 0x88D7
#endif //GL_MATRIX23_ARB
#ifndef GL_MATRIX24_ARB
#define GL_MATRIX24_ARB 0x88D8
#endif //GL_MATRIX24_ARB
#ifndef GL_MATRIX25_ARB
#define GL_MATRIX25_ARB 0x88D9
#endif //GL_MATRIX25_ARB
#ifndef GL_MATRIX26_ARB
#define GL_MATRIX26_ARB 0x88DA
#endif //GL_MATRIX26_ARB
#ifndef GL_MATRIX27_ARB
#define GL_MATRIX27_ARB 0x88DB
#endif //GL_MATRIX27_ARB
#ifndef GL_MATRIX28_ARB
#define GL_MATRIX28_ARB 0x88DC
#endif //GL_MATRIX28_ARB
#ifndef GL_MATRIX29_ARB
#define GL_MATRIX29_ARB 0x88DD
#endif //GL_MATRIX29_ARB
#ifndef GL_MATRIX30_ARB
#define GL_MATRIX30_ARB 0x88DE
#endif //GL_MATRIX30_ARB
#ifndef GL_MATRIX31_ARB
#define GL_MATRIX31_ARB 0x88DF
#endif //GL_MATRIX31_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDPROGRAMARBPROC_HPP)(GLenum,GLuint);
static inline void BindProgramARB(GLenum target1,GLuint program1)
{
	static PFNGLBINDPROGRAMARBPROC_HPP fn=reinterpret_cast<PFNGLBINDPROGRAMARBPROC_HPP>(_impl::_get_proc_address("glBindProgramARB","GL_ARB_fragment_program"));
	 fn(target1,program1);
}
typedef void (*PFNGLDELETEPROGRAMSARBPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteProgramsARB(GLsizei n1,const GLuint * programs1)
{
	static PFNGLDELETEPROGRAMSARBPROC_HPP fn=reinterpret_cast<PFNGLDELETEPROGRAMSARBPROC_HPP>(_impl::_get_proc_address("glDeleteProgramsARB","GL_ARB_fragment_program"));
	 fn(n1,programs1);
}
typedef void (*PFNGLGENPROGRAMSARBPROC_HPP)(GLsizei,GLuint *);
static inline void GenProgramsARB(GLsizei n1,GLuint * programs1)
{
	static PFNGLGENPROGRAMSARBPROC_HPP fn=reinterpret_cast<PFNGLGENPROGRAMSARBPROC_HPP>(_impl::_get_proc_address("glGenProgramsARB","GL_ARB_fragment_program"));
	 fn(n1,programs1);
}
typedef void (*PFNGLGETPROGRAMENVPARAMETERDVARBPROC_HPP)(GLenum,GLuint,GLdouble *);
static inline void GetProgramEnvParameterdvARB(GLenum target1,GLuint index1,GLdouble * params1)
{
	static PFNGLGETPROGRAMENVPARAMETERDVARBPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMENVPARAMETERDVARBPROC_HPP>(_impl::_get_proc_address("glGetProgramEnvParameterdvARB","GL_ARB_fragment_program"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLGETPROGRAMENVPARAMETERFVARBPROC_HPP)(GLenum,GLuint,GLfloat *);
static inline void GetProgramEnvParameterfvARB(GLenum target1,GLuint index1,GLfloat * params1)
{
	static PFNGLGETPROGRAMENVPARAMETERFVARBPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMENVPARAMETERFVARBPROC_HPP>(_impl::_get_proc_address("glGetProgramEnvParameterfvARB","GL_ARB_fragment_program"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC_HPP)(GLenum,GLuint,GLdouble *);
static inline void GetProgramLocalParameterdvARB(GLenum target1,GLuint index1,GLdouble * params1)
{
	static PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC_HPP>(_impl::_get_proc_address("glGetProgramLocalParameterdvARB","GL_ARB_fragment_program"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC_HPP)(GLenum,GLuint,GLfloat *);
static inline void GetProgramLocalParameterfvARB(GLenum target1,GLuint index1,GLfloat * params1)
{
	static PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC_HPP>(_impl::_get_proc_address("glGetProgramLocalParameterfvARB","GL_ARB_fragment_program"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLGETPROGRAMSTRINGARBPROC_HPP)(GLenum,GLenum,void *);
static inline void GetProgramStringARB(GLenum target1,GLenum pname1,void * string1)
{
	static PFNGLGETPROGRAMSTRINGARBPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMSTRINGARBPROC_HPP>(_impl::_get_proc_address("glGetProgramStringARB","GL_ARB_fragment_program"));
	 fn(target1,pname1,string1);
}
typedef void (*PFNGLGETPROGRAMIVARBPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetProgramivARB(GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETPROGRAMIVARBPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMIVARBPROC_HPP>(_impl::_get_proc_address("glGetProgramivARB","GL_ARB_fragment_program"));
	 fn(target1,pname1,params1);
}
typedef GLboolean (*PFNGLISPROGRAMARBPROC_HPP)(GLuint);
static inline GLboolean IsProgramARB(GLuint program1)
{
	static PFNGLISPROGRAMARBPROC_HPP fn=reinterpret_cast<PFNGLISPROGRAMARBPROC_HPP>(_impl::_get_proc_address("glIsProgramARB","GL_ARB_fragment_program"));
	return fn(program1);
}
typedef void (*PFNGLPROGRAMENVPARAMETER4DARBPROC_HPP)(GLenum,GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void ProgramEnvParameter4dARB(GLenum target1,GLuint index1,GLdouble x1,GLdouble y1,GLdouble z1,GLdouble w1)
{
	static PFNGLPROGRAMENVPARAMETER4DARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMENVPARAMETER4DARBPROC_HPP>(_impl::_get_proc_address("glProgramEnvParameter4dARB","GL_ARB_fragment_program"));
	 fn(target1,index1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMENVPARAMETER4DVARBPROC_HPP)(GLenum,GLuint,const GLdouble *);
static inline void ProgramEnvParameter4dvARB(GLenum target1,GLuint index1,const GLdouble * params1)
{
	static PFNGLPROGRAMENVPARAMETER4DVARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMENVPARAMETER4DVARBPROC_HPP>(_impl::_get_proc_address("glProgramEnvParameter4dvARB","GL_ARB_fragment_program"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLPROGRAMENVPARAMETER4FARBPROC_HPP)(GLenum,GLuint,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void ProgramEnvParameter4fARB(GLenum target1,GLuint index1,GLfloat x1,GLfloat y1,GLfloat z1,GLfloat w1)
{
	static PFNGLPROGRAMENVPARAMETER4FARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMENVPARAMETER4FARBPROC_HPP>(_impl::_get_proc_address("glProgramEnvParameter4fARB","GL_ARB_fragment_program"));
	 fn(target1,index1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMENVPARAMETER4FVARBPROC_HPP)(GLenum,GLuint,const GLfloat *);
static inline void ProgramEnvParameter4fvARB(GLenum target1,GLuint index1,const GLfloat * params1)
{
	static PFNGLPROGRAMENVPARAMETER4FVARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMENVPARAMETER4FVARBPROC_HPP>(_impl::_get_proc_address("glProgramEnvParameter4fvARB","GL_ARB_fragment_program"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLPROGRAMLOCALPARAMETER4DARBPROC_HPP)(GLenum,GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void ProgramLocalParameter4dARB(GLenum target1,GLuint index1,GLdouble x1,GLdouble y1,GLdouble z1,GLdouble w1)
{
	static PFNGLPROGRAMLOCALPARAMETER4DARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETER4DARBPROC_HPP>(_impl::_get_proc_address("glProgramLocalParameter4dARB","GL_ARB_fragment_program"));
	 fn(target1,index1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMLOCALPARAMETER4DVARBPROC_HPP)(GLenum,GLuint,const GLdouble *);
static inline void ProgramLocalParameter4dvARB(GLenum target1,GLuint index1,const GLdouble * params1)
{
	static PFNGLPROGRAMLOCALPARAMETER4DVARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETER4DVARBPROC_HPP>(_impl::_get_proc_address("glProgramLocalParameter4dvARB","GL_ARB_fragment_program"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLPROGRAMLOCALPARAMETER4FARBPROC_HPP)(GLenum,GLuint,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void ProgramLocalParameter4fARB(GLenum target1,GLuint index1,GLfloat x1,GLfloat y1,GLfloat z1,GLfloat w1)
{
	static PFNGLPROGRAMLOCALPARAMETER4FARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETER4FARBPROC_HPP>(_impl::_get_proc_address("glProgramLocalParameter4fARB","GL_ARB_fragment_program"));
	 fn(target1,index1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMLOCALPARAMETER4FVARBPROC_HPP)(GLenum,GLuint,const GLfloat *);
static inline void ProgramLocalParameter4fvARB(GLenum target1,GLuint index1,const GLfloat * params1)
{
	static PFNGLPROGRAMLOCALPARAMETER4FVARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETER4FVARBPROC_HPP>(_impl::_get_proc_address("glProgramLocalParameter4fvARB","GL_ARB_fragment_program"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLPROGRAMSTRINGARBPROC_HPP)(GLenum,GLenum,GLsizei,const void *);
static inline void ProgramStringARB(GLenum target1,GLenum format1,GLsizei len1,const void * string1)
{
	static PFNGLPROGRAMSTRINGARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMSTRINGARBPROC_HPP>(_impl::_get_proc_address("glProgramStringARB","GL_ARB_fragment_program"));
	 fn(target1,format1,len1,string1);
}}
#endif

#ifndef GL_ARB_fragment_program_shadow
#define GL_ARB_fragment_program_shadow
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_fragment_shader
#define GL_ARB_fragment_shader
#ifndef GL_FRAGMENT_SHADER_ARB
#define GL_FRAGMENT_SHADER_ARB 0x8B30
#endif //GL_FRAGMENT_SHADER_ARB
#ifndef GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49
#endif //GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
#ifndef GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B
#endif //GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_framebuffer_no_attachments
#define GL_ARB_framebuffer_no_attachments
#ifndef GL_FRAMEBUFFER_DEFAULT_WIDTH
#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310
#endif //GL_FRAMEBUFFER_DEFAULT_WIDTH
#ifndef GL_FRAMEBUFFER_DEFAULT_HEIGHT
#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311
#endif //GL_FRAMEBUFFER_DEFAULT_HEIGHT
#ifndef GL_FRAMEBUFFER_DEFAULT_LAYERS
#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312
#endif //GL_FRAMEBUFFER_DEFAULT_LAYERS
#ifndef GL_FRAMEBUFFER_DEFAULT_SAMPLES
#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313
#endif //GL_FRAMEBUFFER_DEFAULT_SAMPLES
#ifndef GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS
#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314
#endif //GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS
#ifndef GL_MAX_FRAMEBUFFER_WIDTH
#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315
#endif //GL_MAX_FRAMEBUFFER_WIDTH
#ifndef GL_MAX_FRAMEBUFFER_HEIGHT
#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316
#endif //GL_MAX_FRAMEBUFFER_HEIGHT
#ifndef GL_MAX_FRAMEBUFFER_LAYERS
#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317
#endif //GL_MAX_FRAMEBUFFER_LAYERS
#ifndef GL_MAX_FRAMEBUFFER_SAMPLES
#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318
#endif //GL_MAX_FRAMEBUFFER_SAMPLES
extern "C" {
}
namespace gl{

typedef void (*PFNGLFRAMEBUFFERPARAMETERIPROC_HPP)(GLenum,GLenum,GLint);
static inline void FramebufferParameteri(GLenum target1,GLenum pname1,GLint param1)
{
	static PFNGLFRAMEBUFFERPARAMETERIPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERPARAMETERIPROC_HPP>(_impl::_get_proc_address("glFramebufferParameteri","GL_ARB_framebuffer_no_attachments"));
	 fn(target1,pname1,param1);
}
typedef void (*PFNGLGETFRAMEBUFFERPARAMETERIVPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetFramebufferParameteriv(GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETFRAMEBUFFERPARAMETERIVPROC_HPP fn=reinterpret_cast<PFNGLGETFRAMEBUFFERPARAMETERIVPROC_HPP>(_impl::_get_proc_address("glGetFramebufferParameteriv","GL_ARB_framebuffer_no_attachments"));
	 fn(target1,pname1,params1);
}}
#endif

#ifndef GL_ARB_framebuffer_object
#define GL_ARB_framebuffer_object
#ifndef GL_INVALID_FRAMEBUFFER_OPERATION
#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
#endif //GL_INVALID_FRAMEBUFFER_OPERATION
#ifndef GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING
#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
#endif //GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING
#ifndef GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE
#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
#endif //GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE
#ifndef GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE
#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
#endif //GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE
#ifndef GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE
#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
#endif //GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE
#ifndef GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE
#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
#endif //GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE
#ifndef GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE
#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
#endif //GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE
#ifndef GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE
#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
#endif //GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE
#ifndef GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE
#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
#endif //GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE
#ifndef GL_FRAMEBUFFER_DEFAULT
#define GL_FRAMEBUFFER_DEFAULT 0x8218
#endif //GL_FRAMEBUFFER_DEFAULT
#ifndef GL_FRAMEBUFFER_UNDEFINED
#define GL_FRAMEBUFFER_UNDEFINED 0x8219
#endif //GL_FRAMEBUFFER_UNDEFINED
#ifndef GL_DEPTH_STENCIL_ATTACHMENT
#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
#endif //GL_DEPTH_STENCIL_ATTACHMENT
#ifndef GL_MAX_RENDERBUFFER_SIZE
#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
#endif //GL_MAX_RENDERBUFFER_SIZE
#ifndef GL_DEPTH_STENCIL
#define GL_DEPTH_STENCIL 0x84F9
#endif //GL_DEPTH_STENCIL
#ifndef GL_UNSIGNED_INT_24_8
#define GL_UNSIGNED_INT_24_8 0x84FA
#endif //GL_UNSIGNED_INT_24_8
#ifndef GL_DEPTH24_STENCIL8
#define GL_DEPTH24_STENCIL8 0x88F0
#endif //GL_DEPTH24_STENCIL8
#ifndef GL_TEXTURE_STENCIL_SIZE
#define GL_TEXTURE_STENCIL_SIZE 0x88F1
#endif //GL_TEXTURE_STENCIL_SIZE
#ifndef GL_TEXTURE_RED_TYPE
#define GL_TEXTURE_RED_TYPE 0x8C10
#endif //GL_TEXTURE_RED_TYPE
#ifndef GL_TEXTURE_GREEN_TYPE
#define GL_TEXTURE_GREEN_TYPE 0x8C11
#endif //GL_TEXTURE_GREEN_TYPE
#ifndef GL_TEXTURE_BLUE_TYPE
#define GL_TEXTURE_BLUE_TYPE 0x8C12
#endif //GL_TEXTURE_BLUE_TYPE
#ifndef GL_TEXTURE_ALPHA_TYPE
#define GL_TEXTURE_ALPHA_TYPE 0x8C13
#endif //GL_TEXTURE_ALPHA_TYPE
#ifndef GL_TEXTURE_DEPTH_TYPE
#define GL_TEXTURE_DEPTH_TYPE 0x8C16
#endif //GL_TEXTURE_DEPTH_TYPE
#ifndef GL_UNSIGNED_NORMALIZED
#define GL_UNSIGNED_NORMALIZED 0x8C17
#endif //GL_UNSIGNED_NORMALIZED
#ifndef GL_DRAW_FRAMEBUFFER_BINDING
#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
#endif //GL_DRAW_FRAMEBUFFER_BINDING
#ifndef GL_FRAMEBUFFER_BINDING
#define GL_FRAMEBUFFER_BINDING 0x8CA6
#endif //GL_FRAMEBUFFER_BINDING
#ifndef GL_RENDERBUFFER_BINDING
#define GL_RENDERBUFFER_BINDING 0x8CA7
#endif //GL_RENDERBUFFER_BINDING
#ifndef GL_READ_FRAMEBUFFER
#define GL_READ_FRAMEBUFFER 0x8CA8
#endif //GL_READ_FRAMEBUFFER
#ifndef GL_DRAW_FRAMEBUFFER
#define GL_DRAW_FRAMEBUFFER 0x8CA9
#endif //GL_DRAW_FRAMEBUFFER
#ifndef GL_READ_FRAMEBUFFER_BINDING
#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
#endif //GL_READ_FRAMEBUFFER_BINDING
#ifndef GL_RENDERBUFFER_SAMPLES
#define GL_RENDERBUFFER_SAMPLES 0x8CAB
#endif //GL_RENDERBUFFER_SAMPLES
#ifndef GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
#endif //GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
#ifndef GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
#endif //GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
#ifndef GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
#endif //GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL
#ifndef GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
#endif //GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE
#ifndef GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
#endif //GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
#ifndef GL_FRAMEBUFFER_COMPLETE
#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
#endif //GL_FRAMEBUFFER_COMPLETE
#ifndef GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
#endif //GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
#ifndef GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
#endif //GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
#ifndef GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER
#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB
#endif //GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER
#ifndef GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER
#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC
#endif //GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER
#ifndef GL_FRAMEBUFFER_UNSUPPORTED
#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
#endif //GL_FRAMEBUFFER_UNSUPPORTED
#ifndef GL_MAX_COLOR_ATTACHMENTS
#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
#endif //GL_MAX_COLOR_ATTACHMENTS
#ifndef GL_COLOR_ATTACHMENT0
#define GL_COLOR_ATTACHMENT0 0x8CE0
#endif //GL_COLOR_ATTACHMENT0
#ifndef GL_COLOR_ATTACHMENT1
#define GL_COLOR_ATTACHMENT1 0x8CE1
#endif //GL_COLOR_ATTACHMENT1
#ifndef GL_COLOR_ATTACHMENT2
#define GL_COLOR_ATTACHMENT2 0x8CE2
#endif //GL_COLOR_ATTACHMENT2
#ifndef GL_COLOR_ATTACHMENT3
#define GL_COLOR_ATTACHMENT3 0x8CE3
#endif //GL_COLOR_ATTACHMENT3
#ifndef GL_COLOR_ATTACHMENT4
#define GL_COLOR_ATTACHMENT4 0x8CE4
#endif //GL_COLOR_ATTACHMENT4
#ifndef GL_COLOR_ATTACHMENT5
#define GL_COLOR_ATTACHMENT5 0x8CE5
#endif //GL_COLOR_ATTACHMENT5
#ifndef GL_COLOR_ATTACHMENT6
#define GL_COLOR_ATTACHMENT6 0x8CE6
#endif //GL_COLOR_ATTACHMENT6
#ifndef GL_COLOR_ATTACHMENT7
#define GL_COLOR_ATTACHMENT7 0x8CE7
#endif //GL_COLOR_ATTACHMENT7
#ifndef GL_COLOR_ATTACHMENT8
#define GL_COLOR_ATTACHMENT8 0x8CE8
#endif //GL_COLOR_ATTACHMENT8
#ifndef GL_COLOR_ATTACHMENT9
#define GL_COLOR_ATTACHMENT9 0x8CE9
#endif //GL_COLOR_ATTACHMENT9
#ifndef GL_COLOR_ATTACHMENT10
#define GL_COLOR_ATTACHMENT10 0x8CEA
#endif //GL_COLOR_ATTACHMENT10
#ifndef GL_COLOR_ATTACHMENT11
#define GL_COLOR_ATTACHMENT11 0x8CEB
#endif //GL_COLOR_ATTACHMENT11
#ifndef GL_COLOR_ATTACHMENT12
#define GL_COLOR_ATTACHMENT12 0x8CEC
#endif //GL_COLOR_ATTACHMENT12
#ifndef GL_COLOR_ATTACHMENT13
#define GL_COLOR_ATTACHMENT13 0x8CED
#endif //GL_COLOR_ATTACHMENT13
#ifndef GL_COLOR_ATTACHMENT14
#define GL_COLOR_ATTACHMENT14 0x8CEE
#endif //GL_COLOR_ATTACHMENT14
#ifndef GL_COLOR_ATTACHMENT15
#define GL_COLOR_ATTACHMENT15 0x8CEF
#endif //GL_COLOR_ATTACHMENT15
#ifndef GL_DEPTH_ATTACHMENT
#define GL_DEPTH_ATTACHMENT 0x8D00
#endif //GL_DEPTH_ATTACHMENT
#ifndef GL_STENCIL_ATTACHMENT
#define GL_STENCIL_ATTACHMENT 0x8D20
#endif //GL_STENCIL_ATTACHMENT
#ifndef GL_FRAMEBUFFER
#define GL_FRAMEBUFFER 0x8D40
#endif //GL_FRAMEBUFFER
#ifndef GL_RENDERBUFFER
#define GL_RENDERBUFFER 0x8D41
#endif //GL_RENDERBUFFER
#ifndef GL_RENDERBUFFER_WIDTH
#define GL_RENDERBUFFER_WIDTH 0x8D42
#endif //GL_RENDERBUFFER_WIDTH
#ifndef GL_RENDERBUFFER_HEIGHT
#define GL_RENDERBUFFER_HEIGHT 0x8D43
#endif //GL_RENDERBUFFER_HEIGHT
#ifndef GL_RENDERBUFFER_INTERNAL_FORMAT
#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
#endif //GL_RENDERBUFFER_INTERNAL_FORMAT
#ifndef GL_STENCIL_INDEX1
#define GL_STENCIL_INDEX1 0x8D46
#endif //GL_STENCIL_INDEX1
#ifndef GL_STENCIL_INDEX4
#define GL_STENCIL_INDEX4 0x8D47
#endif //GL_STENCIL_INDEX4
#ifndef GL_STENCIL_INDEX8
#define GL_STENCIL_INDEX8 0x8D48
#endif //GL_STENCIL_INDEX8
#ifndef GL_STENCIL_INDEX16
#define GL_STENCIL_INDEX16 0x8D49
#endif //GL_STENCIL_INDEX16
#ifndef GL_RENDERBUFFER_RED_SIZE
#define GL_RENDERBUFFER_RED_SIZE 0x8D50
#endif //GL_RENDERBUFFER_RED_SIZE
#ifndef GL_RENDERBUFFER_GREEN_SIZE
#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
#endif //GL_RENDERBUFFER_GREEN_SIZE
#ifndef GL_RENDERBUFFER_BLUE_SIZE
#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
#endif //GL_RENDERBUFFER_BLUE_SIZE
#ifndef GL_RENDERBUFFER_ALPHA_SIZE
#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
#endif //GL_RENDERBUFFER_ALPHA_SIZE
#ifndef GL_RENDERBUFFER_DEPTH_SIZE
#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
#endif //GL_RENDERBUFFER_DEPTH_SIZE
#ifndef GL_RENDERBUFFER_STENCIL_SIZE
#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
#endif //GL_RENDERBUFFER_STENCIL_SIZE
#ifndef GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
#endif //GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
#ifndef GL_MAX_SAMPLES
#define GL_MAX_SAMPLES 0x8D57
#endif //GL_MAX_SAMPLES
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDFRAMEBUFFERPROC_HPP)(GLenum,GLuint);
static inline void BindFramebuffer(GLenum target1,GLuint framebuffer1)
{
	static PFNGLBINDFRAMEBUFFERPROC_HPP fn=reinterpret_cast<PFNGLBINDFRAMEBUFFERPROC_HPP>(_impl::_get_proc_address("glBindFramebuffer","GL_ARB_framebuffer_object"));
	 fn(target1,framebuffer1);
}
typedef void (*PFNGLBINDRENDERBUFFERPROC_HPP)(GLenum,GLuint);
static inline void BindRenderbuffer(GLenum target1,GLuint renderbuffer1)
{
	static PFNGLBINDRENDERBUFFERPROC_HPP fn=reinterpret_cast<PFNGLBINDRENDERBUFFERPROC_HPP>(_impl::_get_proc_address("glBindRenderbuffer","GL_ARB_framebuffer_object"));
	 fn(target1,renderbuffer1);
}
typedef void (*PFNGLBLITFRAMEBUFFERPROC_HPP)(GLint,GLint,GLint,GLint,GLint,GLint,GLint,GLint,GLbitfield,GLenum);
static inline void BlitFramebuffer(GLint srcX01,GLint srcY01,GLint srcX11,GLint srcY11,GLint dstX01,GLint dstY01,GLint dstX11,GLint dstY11,GLbitfield mask1,GLenum filter1)
{
	static PFNGLBLITFRAMEBUFFERPROC_HPP fn=reinterpret_cast<PFNGLBLITFRAMEBUFFERPROC_HPP>(_impl::_get_proc_address("glBlitFramebuffer","GL_ARB_framebuffer_object"));
	 fn(srcX01,srcY01,srcX11,srcY11,dstX01,dstY01,dstX11,dstY11,mask1,filter1);
}
typedef GLenum (*PFNGLCHECKFRAMEBUFFERSTATUSPROC_HPP)(GLenum);
static inline GLenum CheckFramebufferStatus(GLenum target1)
{
	static PFNGLCHECKFRAMEBUFFERSTATUSPROC_HPP fn=reinterpret_cast<PFNGLCHECKFRAMEBUFFERSTATUSPROC_HPP>(_impl::_get_proc_address("glCheckFramebufferStatus","GL_ARB_framebuffer_object"));
	return fn(target1);
}
typedef void (*PFNGLDELETEFRAMEBUFFERSPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteFramebuffers(GLsizei n1,const GLuint * framebuffers1)
{
	static PFNGLDELETEFRAMEBUFFERSPROC_HPP fn=reinterpret_cast<PFNGLDELETEFRAMEBUFFERSPROC_HPP>(_impl::_get_proc_address("glDeleteFramebuffers","GL_ARB_framebuffer_object"));
	 fn(n1,framebuffers1);
}
typedef void (*PFNGLDELETERENDERBUFFERSPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteRenderbuffers(GLsizei n1,const GLuint * renderbuffers1)
{
	static PFNGLDELETERENDERBUFFERSPROC_HPP fn=reinterpret_cast<PFNGLDELETERENDERBUFFERSPROC_HPP>(_impl::_get_proc_address("glDeleteRenderbuffers","GL_ARB_framebuffer_object"));
	 fn(n1,renderbuffers1);
}
typedef void (*PFNGLFRAMEBUFFERRENDERBUFFERPROC_HPP)(GLenum,GLenum,GLenum,GLuint);
static inline void FramebufferRenderbuffer(GLenum target1,GLenum attachment1,GLenum renderbuffertarget1,GLuint renderbuffer1)
{
	static PFNGLFRAMEBUFFERRENDERBUFFERPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERRENDERBUFFERPROC_HPP>(_impl::_get_proc_address("glFramebufferRenderbuffer","GL_ARB_framebuffer_object"));
	 fn(target1,attachment1,renderbuffertarget1,renderbuffer1);
}
typedef void (*PFNGLFRAMEBUFFERTEXTURE1DPROC_HPP)(GLenum,GLenum,GLenum,GLuint,GLint);
static inline void FramebufferTexture1D(GLenum target1,GLenum attachment1,GLenum textarget1,GLuint texture1,GLint level1)
{
	static PFNGLFRAMEBUFFERTEXTURE1DPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERTEXTURE1DPROC_HPP>(_impl::_get_proc_address("glFramebufferTexture1D","GL_ARB_framebuffer_object"));
	 fn(target1,attachment1,textarget1,texture1,level1);
}
typedef void (*PFNGLFRAMEBUFFERTEXTURE2DPROC_HPP)(GLenum,GLenum,GLenum,GLuint,GLint);
static inline void FramebufferTexture2D(GLenum target1,GLenum attachment1,GLenum textarget1,GLuint texture1,GLint level1)
{
	static PFNGLFRAMEBUFFERTEXTURE2DPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERTEXTURE2DPROC_HPP>(_impl::_get_proc_address("glFramebufferTexture2D","GL_ARB_framebuffer_object"));
	 fn(target1,attachment1,textarget1,texture1,level1);
}
typedef void (*PFNGLFRAMEBUFFERTEXTURE3DPROC_HPP)(GLenum,GLenum,GLenum,GLuint,GLint,GLint);
static inline void FramebufferTexture3D(GLenum target1,GLenum attachment1,GLenum textarget1,GLuint texture1,GLint level1,GLint zoffset1)
{
	static PFNGLFRAMEBUFFERTEXTURE3DPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERTEXTURE3DPROC_HPP>(_impl::_get_proc_address("glFramebufferTexture3D","GL_ARB_framebuffer_object"));
	 fn(target1,attachment1,textarget1,texture1,level1,zoffset1);
}
typedef void (*PFNGLFRAMEBUFFERTEXTURELAYERPROC_HPP)(GLenum,GLenum,GLuint,GLint,GLint);
static inline void FramebufferTextureLayer(GLenum target1,GLenum attachment1,GLuint texture1,GLint level1,GLint layer1)
{
	static PFNGLFRAMEBUFFERTEXTURELAYERPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERTEXTURELAYERPROC_HPP>(_impl::_get_proc_address("glFramebufferTextureLayer","GL_ARB_framebuffer_object"));
	 fn(target1,attachment1,texture1,level1,layer1);
}
typedef void (*PFNGLGENFRAMEBUFFERSPROC_HPP)(GLsizei,GLuint *);
static inline void GenFramebuffers(GLsizei n1,GLuint * framebuffers1)
{
	static PFNGLGENFRAMEBUFFERSPROC_HPP fn=reinterpret_cast<PFNGLGENFRAMEBUFFERSPROC_HPP>(_impl::_get_proc_address("glGenFramebuffers","GL_ARB_framebuffer_object"));
	 fn(n1,framebuffers1);
}
typedef void (*PFNGLGENRENDERBUFFERSPROC_HPP)(GLsizei,GLuint *);
static inline void GenRenderbuffers(GLsizei n1,GLuint * renderbuffers1)
{
	static PFNGLGENRENDERBUFFERSPROC_HPP fn=reinterpret_cast<PFNGLGENRENDERBUFFERSPROC_HPP>(_impl::_get_proc_address("glGenRenderbuffers","GL_ARB_framebuffer_object"));
	 fn(n1,renderbuffers1);
}
typedef void (*PFNGLGENERATEMIPMAPPROC_HPP)(GLenum);
static inline void GenerateMipmap(GLenum target1)
{
	static PFNGLGENERATEMIPMAPPROC_HPP fn=reinterpret_cast<PFNGLGENERATEMIPMAPPROC_HPP>(_impl::_get_proc_address("glGenerateMipmap","GL_ARB_framebuffer_object"));
	 fn(target1);
}
typedef void (*PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC_HPP)(GLenum,GLenum,GLenum,GLint *);
static inline void GetFramebufferAttachmentParameteriv(GLenum target1,GLenum attachment1,GLenum pname1,GLint * params1)
{
	static PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC_HPP fn=reinterpret_cast<PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC_HPP>(_impl::_get_proc_address("glGetFramebufferAttachmentParameteriv","GL_ARB_framebuffer_object"));
	 fn(target1,attachment1,pname1,params1);
}
typedef void (*PFNGLGETRENDERBUFFERPARAMETERIVPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetRenderbufferParameteriv(GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETRENDERBUFFERPARAMETERIVPROC_HPP fn=reinterpret_cast<PFNGLGETRENDERBUFFERPARAMETERIVPROC_HPP>(_impl::_get_proc_address("glGetRenderbufferParameteriv","GL_ARB_framebuffer_object"));
	 fn(target1,pname1,params1);
}
typedef GLboolean (*PFNGLISFRAMEBUFFERPROC_HPP)(GLuint);
static inline GLboolean IsFramebuffer(GLuint framebuffer1)
{
	static PFNGLISFRAMEBUFFERPROC_HPP fn=reinterpret_cast<PFNGLISFRAMEBUFFERPROC_HPP>(_impl::_get_proc_address("glIsFramebuffer","GL_ARB_framebuffer_object"));
	return fn(framebuffer1);
}
typedef GLboolean (*PFNGLISRENDERBUFFERPROC_HPP)(GLuint);
static inline GLboolean IsRenderbuffer(GLuint renderbuffer1)
{
	static PFNGLISRENDERBUFFERPROC_HPP fn=reinterpret_cast<PFNGLISRENDERBUFFERPROC_HPP>(_impl::_get_proc_address("glIsRenderbuffer","GL_ARB_framebuffer_object"));
	return fn(renderbuffer1);
}
typedef void (*PFNGLRENDERBUFFERSTORAGEPROC_HPP)(GLenum,GLenum,GLsizei,GLsizei);
static inline void RenderbufferStorage(GLenum target1,GLenum internalformat1,GLsizei width1,GLsizei height1)
{
	static PFNGLRENDERBUFFERSTORAGEPROC_HPP fn=reinterpret_cast<PFNGLRENDERBUFFERSTORAGEPROC_HPP>(_impl::_get_proc_address("glRenderbufferStorage","GL_ARB_framebuffer_object"));
	 fn(target1,internalformat1,width1,height1);
}
typedef void (*PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC_HPP)(GLenum,GLsizei,GLenum,GLsizei,GLsizei);
static inline void RenderbufferStorageMultisample(GLenum target1,GLsizei samples1,GLenum internalformat1,GLsizei width1,GLsizei height1)
{
	static PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC_HPP fn=reinterpret_cast<PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC_HPP>(_impl::_get_proc_address("glRenderbufferStorageMultisample","GL_ARB_framebuffer_object"));
	 fn(target1,samples1,internalformat1,width1,height1);
}}
#endif

#ifndef GL_ARB_framebuffer_sRGB
#define GL_ARB_framebuffer_sRGB
#ifndef GL_FRAMEBUFFER_SRGB
#define GL_FRAMEBUFFER_SRGB 0x8DB9
#endif //GL_FRAMEBUFFER_SRGB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_geometry_shader4
#define GL_ARB_geometry_shader4
#ifndef GL_LINES_ADJACENCY_ARB
#define GL_LINES_ADJACENCY_ARB 0x000A
#endif //GL_LINES_ADJACENCY_ARB
#ifndef GL_LINE_STRIP_ADJACENCY_ARB
#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B
#endif //GL_LINE_STRIP_ADJACENCY_ARB
#ifndef GL_TRIANGLES_ADJACENCY_ARB
#define GL_TRIANGLES_ADJACENCY_ARB 0x000C
#endif //GL_TRIANGLES_ADJACENCY_ARB
#ifndef GL_TRIANGLE_STRIP_ADJACENCY_ARB
#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D
#endif //GL_TRIANGLE_STRIP_ADJACENCY_ARB
#ifndef GL_PROGRAM_POINT_SIZE_ARB
#define GL_PROGRAM_POINT_SIZE_ARB 0x8642
#endif //GL_PROGRAM_POINT_SIZE_ARB
#ifndef GL_MAX_VARYING_COMPONENTS
#define GL_MAX_VARYING_COMPONENTS 0x8B4B
#endif //GL_MAX_VARYING_COMPONENTS
#ifndef GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB
#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29
#endif //GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB
#ifndef GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
#endif //GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
#ifndef GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB
#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7
#endif //GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB
#ifndef GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB
#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8
#endif //GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB
#ifndef GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB
#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9
#endif //GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB
#ifndef GL_GEOMETRY_SHADER_ARB
#define GL_GEOMETRY_SHADER_ARB 0x8DD9
#endif //GL_GEOMETRY_SHADER_ARB
#ifndef GL_GEOMETRY_VERTICES_OUT_ARB
#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA
#endif //GL_GEOMETRY_VERTICES_OUT_ARB
#ifndef GL_GEOMETRY_INPUT_TYPE_ARB
#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB
#endif //GL_GEOMETRY_INPUT_TYPE_ARB
#ifndef GL_GEOMETRY_OUTPUT_TYPE_ARB
#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC
#endif //GL_GEOMETRY_OUTPUT_TYPE_ARB
#ifndef GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB
#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD
#endif //GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB
#ifndef GL_MAX_VERTEX_VARYING_COMPONENTS_ARB
#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE
#endif //GL_MAX_VERTEX_VARYING_COMPONENTS_ARB
#ifndef GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB
#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF
#endif //GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB
#ifndef GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB
#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0
#endif //GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB
#ifndef GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB
#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1
#endif //GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLFRAMEBUFFERTEXTUREARBPROC_HPP)(GLenum,GLenum,GLuint,GLint);
static inline void FramebufferTextureARB(GLenum target1,GLenum attachment1,GLuint texture1,GLint level1)
{
	static PFNGLFRAMEBUFFERTEXTUREARBPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERTEXTUREARBPROC_HPP>(_impl::_get_proc_address("glFramebufferTextureARB","GL_ARB_geometry_shader4"));
	 fn(target1,attachment1,texture1,level1);
}
typedef void (*PFNGLFRAMEBUFFERTEXTUREFACEARBPROC_HPP)(GLenum,GLenum,GLuint,GLint,GLenum);
static inline void FramebufferTextureFaceARB(GLenum target1,GLenum attachment1,GLuint texture1,GLint level1,GLenum face1)
{
	static PFNGLFRAMEBUFFERTEXTUREFACEARBPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERTEXTUREFACEARBPROC_HPP>(_impl::_get_proc_address("glFramebufferTextureFaceARB","GL_ARB_geometry_shader4"));
	 fn(target1,attachment1,texture1,level1,face1);
}
typedef void (*PFNGLFRAMEBUFFERTEXTURELAYERARBPROC_HPP)(GLenum,GLenum,GLuint,GLint,GLint);
static inline void FramebufferTextureLayerARB(GLenum target1,GLenum attachment1,GLuint texture1,GLint level1,GLint layer1)
{
	static PFNGLFRAMEBUFFERTEXTURELAYERARBPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERTEXTURELAYERARBPROC_HPP>(_impl::_get_proc_address("glFramebufferTextureLayerARB","GL_ARB_geometry_shader4"));
	 fn(target1,attachment1,texture1,level1,layer1);
}
typedef void (*PFNGLPROGRAMPARAMETERIARBPROC_HPP)(GLuint,GLenum,GLint);
static inline void ProgramParameteriARB(GLuint program1,GLenum pname1,GLint value1)
{
	static PFNGLPROGRAMPARAMETERIARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMPARAMETERIARBPROC_HPP>(_impl::_get_proc_address("glProgramParameteriARB","GL_ARB_geometry_shader4"));
	 fn(program1,pname1,value1);
}}
#endif

#ifndef GL_ARB_get_program_binary
#define GL_ARB_get_program_binary
#ifndef GL_PROGRAM_BINARY_RETRIEVABLE_HINT
#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257
#endif //GL_PROGRAM_BINARY_RETRIEVABLE_HINT
#ifndef GL_PROGRAM_BINARY_LENGTH
#define GL_PROGRAM_BINARY_LENGTH 0x8741
#endif //GL_PROGRAM_BINARY_LENGTH
#ifndef GL_NUM_PROGRAM_BINARY_FORMATS
#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE
#endif //GL_NUM_PROGRAM_BINARY_FORMATS
#ifndef GL_PROGRAM_BINARY_FORMATS
#define GL_PROGRAM_BINARY_FORMATS 0x87FF
#endif //GL_PROGRAM_BINARY_FORMATS
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETPROGRAMBINARYPROC_HPP)(GLuint,GLsizei,GLsizei *,GLenum *,void *);
static inline void GetProgramBinary(GLuint program1,GLsizei bufSize1,GLsizei * length1,GLenum * binaryFormat1,void * binary1)
{
	static PFNGLGETPROGRAMBINARYPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMBINARYPROC_HPP>(_impl::_get_proc_address("glGetProgramBinary","GL_ARB_get_program_binary"));
	 fn(program1,bufSize1,length1,binaryFormat1,binary1);
}
typedef void (*PFNGLPROGRAMBINARYPROC_HPP)(GLuint,GLenum,const void *,GLsizei);
static inline void ProgramBinary(GLuint program1,GLenum binaryFormat1,const void * binary1,GLsizei length1)
{
	static PFNGLPROGRAMBINARYPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMBINARYPROC_HPP>(_impl::_get_proc_address("glProgramBinary","GL_ARB_get_program_binary"));
	 fn(program1,binaryFormat1,binary1,length1);
}
typedef void (*PFNGLPROGRAMPARAMETERIPROC_HPP)(GLuint,GLenum,GLint);
static inline void ProgramParameteri(GLuint program1,GLenum pname1,GLint value1)
{
	static PFNGLPROGRAMPARAMETERIPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMPARAMETERIPROC_HPP>(_impl::_get_proc_address("glProgramParameteri","GL_ARB_get_program_binary"));
	 fn(program1,pname1,value1);
}}
#endif

#ifndef GL_ARB_get_texture_sub_image
#define GL_ARB_get_texture_sub_image
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC_HPP)(GLuint,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLsizei,void *);
static inline void GetCompressedTextureSubImage(GLuint texture1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLsizei width1,GLsizei height1,GLsizei depth1,GLsizei bufSize1,void * pixels1)
{
	static PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC_HPP fn=reinterpret_cast<PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC_HPP>(_impl::_get_proc_address("glGetCompressedTextureSubImage","GL_ARB_get_texture_sub_image"));
	 fn(texture1,level1,xoffset1,yoffset1,zoffset1,width1,height1,depth1,bufSize1,pixels1);
}
typedef void (*PFNGLGETTEXTURESUBIMAGEPROC_HPP)(GLuint,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLenum,GLsizei,void *);
static inline void GetTextureSubImage(GLuint texture1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLsizei width1,GLsizei height1,GLsizei depth1,GLenum format1,GLenum type1,GLsizei bufSize1,void * pixels1)
{
	static PFNGLGETTEXTURESUBIMAGEPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTURESUBIMAGEPROC_HPP>(_impl::_get_proc_address("glGetTextureSubImage","GL_ARB_get_texture_sub_image"));
	 fn(texture1,level1,xoffset1,yoffset1,zoffset1,width1,height1,depth1,format1,type1,bufSize1,pixels1);
}}
#endif

#ifndef GL_ARB_gpu_shader5
#define GL_ARB_gpu_shader5
#ifndef GL_GEOMETRY_SHADER_INVOCATIONS
#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F
#endif //GL_GEOMETRY_SHADER_INVOCATIONS
#ifndef GL_MAX_GEOMETRY_SHADER_INVOCATIONS
#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A
#endif //GL_MAX_GEOMETRY_SHADER_INVOCATIONS
#ifndef GL_MIN_FRAGMENT_INTERPOLATION_OFFSET
#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B
#endif //GL_MIN_FRAGMENT_INTERPOLATION_OFFSET
#ifndef GL_MAX_FRAGMENT_INTERPOLATION_OFFSET
#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C
#endif //GL_MAX_FRAGMENT_INTERPOLATION_OFFSET
#ifndef GL_FRAGMENT_INTERPOLATION_OFFSET_BITS
#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D
#endif //GL_FRAGMENT_INTERPOLATION_OFFSET_BITS
#ifndef GL_MAX_VERTEX_STREAMS
#define GL_MAX_VERTEX_STREAMS 0x8E71
#endif //GL_MAX_VERTEX_STREAMS
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_gpu_shader_fp64
#define GL_ARB_gpu_shader_fp64
#ifndef GL_DOUBLE
#define GL_DOUBLE 0x140A
#endif //GL_DOUBLE
#ifndef GL_DOUBLE_MAT2
#define GL_DOUBLE_MAT2 0x8F46
#endif //GL_DOUBLE_MAT2
#ifndef GL_DOUBLE_MAT3
#define GL_DOUBLE_MAT3 0x8F47
#endif //GL_DOUBLE_MAT3
#ifndef GL_DOUBLE_MAT4
#define GL_DOUBLE_MAT4 0x8F48
#endif //GL_DOUBLE_MAT4
#ifndef GL_DOUBLE_MAT2x3
#define GL_DOUBLE_MAT2x3 0x8F49
#endif //GL_DOUBLE_MAT2x3
#ifndef GL_DOUBLE_MAT2x4
#define GL_DOUBLE_MAT2x4 0x8F4A
#endif //GL_DOUBLE_MAT2x4
#ifndef GL_DOUBLE_MAT3x2
#define GL_DOUBLE_MAT3x2 0x8F4B
#endif //GL_DOUBLE_MAT3x2
#ifndef GL_DOUBLE_MAT3x4
#define GL_DOUBLE_MAT3x4 0x8F4C
#endif //GL_DOUBLE_MAT3x4
#ifndef GL_DOUBLE_MAT4x2
#define GL_DOUBLE_MAT4x2 0x8F4D
#endif //GL_DOUBLE_MAT4x2
#ifndef GL_DOUBLE_MAT4x3
#define GL_DOUBLE_MAT4x3 0x8F4E
#endif //GL_DOUBLE_MAT4x3
#ifndef GL_DOUBLE_VEC2
#define GL_DOUBLE_VEC2 0x8FFC
#endif //GL_DOUBLE_VEC2
#ifndef GL_DOUBLE_VEC3
#define GL_DOUBLE_VEC3 0x8FFD
#endif //GL_DOUBLE_VEC3
#ifndef GL_DOUBLE_VEC4
#define GL_DOUBLE_VEC4 0x8FFE
#endif //GL_DOUBLE_VEC4
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETUNIFORMDVPROC_HPP)(GLuint,GLint,GLdouble *);
static inline void GetUniformdv(GLuint program1,GLint location1,GLdouble * params1)
{
	static PFNGLGETUNIFORMDVPROC_HPP fn=reinterpret_cast<PFNGLGETUNIFORMDVPROC_HPP>(_impl::_get_proc_address("glGetUniformdv","GL_ARB_gpu_shader_fp64"));
	 fn(program1,location1,params1);
}
typedef void (*PFNGLUNIFORM1DPROC_HPP)(GLint,GLdouble);
static inline void Uniform1d(GLint location1,GLdouble x1)
{
	static PFNGLUNIFORM1DPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM1DPROC_HPP>(_impl::_get_proc_address("glUniform1d","GL_ARB_gpu_shader_fp64"));
	 fn(location1,x1);
}
typedef void (*PFNGLUNIFORM1DVPROC_HPP)(GLint,GLsizei,const GLdouble *);
static inline void Uniform1dv(GLint location1,GLsizei count1,const GLdouble * value1)
{
	static PFNGLUNIFORM1DVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM1DVPROC_HPP>(_impl::_get_proc_address("glUniform1dv","GL_ARB_gpu_shader_fp64"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM2DPROC_HPP)(GLint,GLdouble,GLdouble);
static inline void Uniform2d(GLint location1,GLdouble x1,GLdouble y1)
{
	static PFNGLUNIFORM2DPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM2DPROC_HPP>(_impl::_get_proc_address("glUniform2d","GL_ARB_gpu_shader_fp64"));
	 fn(location1,x1,y1);
}
typedef void (*PFNGLUNIFORM2DVPROC_HPP)(GLint,GLsizei,const GLdouble *);
static inline void Uniform2dv(GLint location1,GLsizei count1,const GLdouble * value1)
{
	static PFNGLUNIFORM2DVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM2DVPROC_HPP>(_impl::_get_proc_address("glUniform2dv","GL_ARB_gpu_shader_fp64"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM3DPROC_HPP)(GLint,GLdouble,GLdouble,GLdouble);
static inline void Uniform3d(GLint location1,GLdouble x1,GLdouble y1,GLdouble z1)
{
	static PFNGLUNIFORM3DPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM3DPROC_HPP>(_impl::_get_proc_address("glUniform3d","GL_ARB_gpu_shader_fp64"));
	 fn(location1,x1,y1,z1);
}
typedef void (*PFNGLUNIFORM3DVPROC_HPP)(GLint,GLsizei,const GLdouble *);
static inline void Uniform3dv(GLint location1,GLsizei count1,const GLdouble * value1)
{
	static PFNGLUNIFORM3DVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM3DVPROC_HPP>(_impl::_get_proc_address("glUniform3dv","GL_ARB_gpu_shader_fp64"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM4DPROC_HPP)(GLint,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void Uniform4d(GLint location1,GLdouble x1,GLdouble y1,GLdouble z1,GLdouble w1)
{
	static PFNGLUNIFORM4DPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM4DPROC_HPP>(_impl::_get_proc_address("glUniform4d","GL_ARB_gpu_shader_fp64"));
	 fn(location1,x1,y1,z1,w1);
}
typedef void (*PFNGLUNIFORM4DVPROC_HPP)(GLint,GLsizei,const GLdouble *);
static inline void Uniform4dv(GLint location1,GLsizei count1,const GLdouble * value1)
{
	static PFNGLUNIFORM4DVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM4DVPROC_HPP>(_impl::_get_proc_address("glUniform4dv","GL_ARB_gpu_shader_fp64"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORMMATRIX2DVPROC_HPP)(GLint,GLsizei,GLboolean,const GLdouble *);
static inline void UniformMatrix2dv(GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLUNIFORMMATRIX2DVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMMATRIX2DVPROC_HPP>(_impl::_get_proc_address("glUniformMatrix2dv","GL_ARB_gpu_shader_fp64"));
	 fn(location1,count1,transpose1,value1);
}
typedef void (*PFNGLUNIFORMMATRIX2X3DVPROC_HPP)(GLint,GLsizei,GLboolean,const GLdouble *);
static inline void UniformMatrix2x3dv(GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLUNIFORMMATRIX2X3DVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMMATRIX2X3DVPROC_HPP>(_impl::_get_proc_address("glUniformMatrix2x3dv","GL_ARB_gpu_shader_fp64"));
	 fn(location1,count1,transpose1,value1);
}
typedef void (*PFNGLUNIFORMMATRIX2X4DVPROC_HPP)(GLint,GLsizei,GLboolean,const GLdouble *);
static inline void UniformMatrix2x4dv(GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLUNIFORMMATRIX2X4DVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMMATRIX2X4DVPROC_HPP>(_impl::_get_proc_address("glUniformMatrix2x4dv","GL_ARB_gpu_shader_fp64"));
	 fn(location1,count1,transpose1,value1);
}
typedef void (*PFNGLUNIFORMMATRIX3DVPROC_HPP)(GLint,GLsizei,GLboolean,const GLdouble *);
static inline void UniformMatrix3dv(GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLUNIFORMMATRIX3DVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMMATRIX3DVPROC_HPP>(_impl::_get_proc_address("glUniformMatrix3dv","GL_ARB_gpu_shader_fp64"));
	 fn(location1,count1,transpose1,value1);
}
typedef void (*PFNGLUNIFORMMATRIX3X2DVPROC_HPP)(GLint,GLsizei,GLboolean,const GLdouble *);
static inline void UniformMatrix3x2dv(GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLUNIFORMMATRIX3X2DVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMMATRIX3X2DVPROC_HPP>(_impl::_get_proc_address("glUniformMatrix3x2dv","GL_ARB_gpu_shader_fp64"));
	 fn(location1,count1,transpose1,value1);
}
typedef void (*PFNGLUNIFORMMATRIX3X4DVPROC_HPP)(GLint,GLsizei,GLboolean,const GLdouble *);
static inline void UniformMatrix3x4dv(GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLUNIFORMMATRIX3X4DVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMMATRIX3X4DVPROC_HPP>(_impl::_get_proc_address("glUniformMatrix3x4dv","GL_ARB_gpu_shader_fp64"));
	 fn(location1,count1,transpose1,value1);
}
typedef void (*PFNGLUNIFORMMATRIX4DVPROC_HPP)(GLint,GLsizei,GLboolean,const GLdouble *);
static inline void UniformMatrix4dv(GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLUNIFORMMATRIX4DVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMMATRIX4DVPROC_HPP>(_impl::_get_proc_address("glUniformMatrix4dv","GL_ARB_gpu_shader_fp64"));
	 fn(location1,count1,transpose1,value1);
}
typedef void (*PFNGLUNIFORMMATRIX4X2DVPROC_HPP)(GLint,GLsizei,GLboolean,const GLdouble *);
static inline void UniformMatrix4x2dv(GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLUNIFORMMATRIX4X2DVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMMATRIX4X2DVPROC_HPP>(_impl::_get_proc_address("glUniformMatrix4x2dv","GL_ARB_gpu_shader_fp64"));
	 fn(location1,count1,transpose1,value1);
}
typedef void (*PFNGLUNIFORMMATRIX4X3DVPROC_HPP)(GLint,GLsizei,GLboolean,const GLdouble *);
static inline void UniformMatrix4x3dv(GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLUNIFORMMATRIX4X3DVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMMATRIX4X3DVPROC_HPP>(_impl::_get_proc_address("glUniformMatrix4x3dv","GL_ARB_gpu_shader_fp64"));
	 fn(location1,count1,transpose1,value1);
}}
#endif

#ifndef GL_ARB_half_float_pixel
#define GL_ARB_half_float_pixel
#ifndef GL_HALF_FLOAT_ARB
#define GL_HALF_FLOAT_ARB 0x140B
#endif //GL_HALF_FLOAT_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_half_float_vertex
#define GL_ARB_half_float_vertex
#ifndef GL_HALF_FLOAT
#define GL_HALF_FLOAT 0x140B
#endif //GL_HALF_FLOAT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_imaging
#define GL_ARB_imaging
#ifndef GL_CONSTANT_COLOR
#define GL_CONSTANT_COLOR 0x8001
#endif //GL_CONSTANT_COLOR
#ifndef GL_ONE_MINUS_CONSTANT_COLOR
#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
#endif //GL_ONE_MINUS_CONSTANT_COLOR
#ifndef GL_CONSTANT_ALPHA
#define GL_CONSTANT_ALPHA 0x8003
#endif //GL_CONSTANT_ALPHA
#ifndef GL_ONE_MINUS_CONSTANT_ALPHA
#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
#endif //GL_ONE_MINUS_CONSTANT_ALPHA
#ifndef GL_BLEND_COLOR
#define GL_BLEND_COLOR 0x8005
#endif //GL_BLEND_COLOR
#ifndef GL_FUNC_ADD
#define GL_FUNC_ADD 0x8006
#endif //GL_FUNC_ADD
#ifndef GL_MIN
#define GL_MIN 0x8007
#endif //GL_MIN
#ifndef GL_MAX
#define GL_MAX 0x8008
#endif //GL_MAX
#ifndef GL_BLEND_EQUATION
#define GL_BLEND_EQUATION 0x8009
#endif //GL_BLEND_EQUATION
#ifndef GL_FUNC_SUBTRACT
#define GL_FUNC_SUBTRACT 0x800A
#endif //GL_FUNC_SUBTRACT
#ifndef GL_FUNC_REVERSE_SUBTRACT
#define GL_FUNC_REVERSE_SUBTRACT 0x800B
#endif //GL_FUNC_REVERSE_SUBTRACT
extern "C" {
}
namespace gl{

typedef void (*PFNGLBLENDCOLORPROC_HPP)(GLfloat,GLfloat,GLfloat,GLfloat);
static inline void BlendColor(GLfloat red1,GLfloat green1,GLfloat blue1,GLfloat alpha1)
{
	static PFNGLBLENDCOLORPROC_HPP fn=reinterpret_cast<PFNGLBLENDCOLORPROC_HPP>(_impl::_get_proc_address("glBlendColor","GL_ARB_imaging"));
	 fn(red1,green1,blue1,alpha1);
}
typedef void (*PFNGLBLENDEQUATIONPROC_HPP)(GLenum);
static inline void BlendEquation(GLenum mode1)
{
	static PFNGLBLENDEQUATIONPROC_HPP fn=reinterpret_cast<PFNGLBLENDEQUATIONPROC_HPP>(_impl::_get_proc_address("glBlendEquation","GL_ARB_imaging"));
	 fn(mode1);
}}
#endif

#ifndef GL_ARB_indirect_parameters
#define GL_ARB_indirect_parameters
#ifndef GL_PARAMETER_BUFFER_ARB
#define GL_PARAMETER_BUFFER_ARB 0x80EE
#endif //GL_PARAMETER_BUFFER_ARB
#ifndef GL_PARAMETER_BUFFER_BINDING_ARB
#define GL_PARAMETER_BUFFER_BINDING_ARB 0x80EF
#endif //GL_PARAMETER_BUFFER_BINDING_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC_HPP)(GLenum,GLintptr,GLintptr,GLsizei,GLsizei);
static inline void MultiDrawArraysIndirectCountARB(GLenum mode1,GLintptr indirect1,GLintptr drawcount1,GLsizei maxdrawcount1,GLsizei stride1)
{
	static PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC_HPP fn=reinterpret_cast<PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC_HPP>(_impl::_get_proc_address("glMultiDrawArraysIndirectCountARB","GL_ARB_indirect_parameters"));
	 fn(mode1,indirect1,drawcount1,maxdrawcount1,stride1);
}
typedef void (*PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC_HPP)(GLenum,GLenum,GLintptr,GLintptr,GLsizei,GLsizei);
static inline void MultiDrawElementsIndirectCountARB(GLenum mode1,GLenum type1,GLintptr indirect1,GLintptr drawcount1,GLsizei maxdrawcount1,GLsizei stride1)
{
	static PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC_HPP fn=reinterpret_cast<PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC_HPP>(_impl::_get_proc_address("glMultiDrawElementsIndirectCountARB","GL_ARB_indirect_parameters"));
	 fn(mode1,type1,indirect1,drawcount1,maxdrawcount1,stride1);
}}
#endif

#ifndef GL_ARB_instanced_arrays
#define GL_ARB_instanced_arrays
#ifndef GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB
#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE
#endif //GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLVERTEXATTRIBDIVISORARBPROC_HPP)(GLuint,GLuint);
static inline void VertexAttribDivisorARB(GLuint index1,GLuint divisor1)
{
	static PFNGLVERTEXATTRIBDIVISORARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBDIVISORARBPROC_HPP>(_impl::_get_proc_address("glVertexAttribDivisorARB","GL_ARB_instanced_arrays"));
	 fn(index1,divisor1);
}}
#endif

#ifndef GL_ARB_internalformat_query
#define GL_ARB_internalformat_query
#ifndef GL_NUM_SAMPLE_COUNTS
#define GL_NUM_SAMPLE_COUNTS 0x9380
#endif //GL_NUM_SAMPLE_COUNTS
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETINTERNALFORMATIVPROC_HPP)(GLenum,GLenum,GLenum,GLsizei,GLint *);
static inline void GetInternalformativ(GLenum target1,GLenum internalformat1,GLenum pname1,GLsizei bufSize1,GLint * params1)
{
	static PFNGLGETINTERNALFORMATIVPROC_HPP fn=reinterpret_cast<PFNGLGETINTERNALFORMATIVPROC_HPP>(_impl::_get_proc_address("glGetInternalformativ","GL_ARB_internalformat_query"));
	 fn(target1,internalformat1,pname1,bufSize1,params1);
}}
#endif

#ifndef GL_ARB_internalformat_query2
#define GL_ARB_internalformat_query2
#ifndef GL_TEXTURE_1D
#define GL_TEXTURE_1D 0x0DE0
#endif //GL_TEXTURE_1D
#ifndef GL_TEXTURE_2D
#define GL_TEXTURE_2D 0x0DE1
#endif //GL_TEXTURE_2D
#ifndef GL_TEXTURE_3D
#define GL_TEXTURE_3D 0x806F
#endif //GL_TEXTURE_3D
#ifndef GL_SAMPLES
#define GL_SAMPLES 0x80A9
#endif //GL_SAMPLES
#ifndef GL_INTERNALFORMAT_SUPPORTED
#define GL_INTERNALFORMAT_SUPPORTED 0x826F
#endif //GL_INTERNALFORMAT_SUPPORTED
#ifndef GL_INTERNALFORMAT_PREFERRED
#define GL_INTERNALFORMAT_PREFERRED 0x8270
#endif //GL_INTERNALFORMAT_PREFERRED
#ifndef GL_INTERNALFORMAT_RED_SIZE
#define GL_INTERNALFORMAT_RED_SIZE 0x8271
#endif //GL_INTERNALFORMAT_RED_SIZE
#ifndef GL_INTERNALFORMAT_GREEN_SIZE
#define GL_INTERNALFORMAT_GREEN_SIZE 0x8272
#endif //GL_INTERNALFORMAT_GREEN_SIZE
#ifndef GL_INTERNALFORMAT_BLUE_SIZE
#define GL_INTERNALFORMAT_BLUE_SIZE 0x8273
#endif //GL_INTERNALFORMAT_BLUE_SIZE
#ifndef GL_INTERNALFORMAT_ALPHA_SIZE
#define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274
#endif //GL_INTERNALFORMAT_ALPHA_SIZE
#ifndef GL_INTERNALFORMAT_DEPTH_SIZE
#define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275
#endif //GL_INTERNALFORMAT_DEPTH_SIZE
#ifndef GL_INTERNALFORMAT_STENCIL_SIZE
#define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276
#endif //GL_INTERNALFORMAT_STENCIL_SIZE
#ifndef GL_INTERNALFORMAT_SHARED_SIZE
#define GL_INTERNALFORMAT_SHARED_SIZE 0x8277
#endif //GL_INTERNALFORMAT_SHARED_SIZE
#ifndef GL_INTERNALFORMAT_RED_TYPE
#define GL_INTERNALFORMAT_RED_TYPE 0x8278
#endif //GL_INTERNALFORMAT_RED_TYPE
#ifndef GL_INTERNALFORMAT_GREEN_TYPE
#define GL_INTERNALFORMAT_GREEN_TYPE 0x8279
#endif //GL_INTERNALFORMAT_GREEN_TYPE
#ifndef GL_INTERNALFORMAT_BLUE_TYPE
#define GL_INTERNALFORMAT_BLUE_TYPE 0x827A
#endif //GL_INTERNALFORMAT_BLUE_TYPE
#ifndef GL_INTERNALFORMAT_ALPHA_TYPE
#define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B
#endif //GL_INTERNALFORMAT_ALPHA_TYPE
#ifndef GL_INTERNALFORMAT_DEPTH_TYPE
#define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C
#endif //GL_INTERNALFORMAT_DEPTH_TYPE
#ifndef GL_INTERNALFORMAT_STENCIL_TYPE
#define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D
#endif //GL_INTERNALFORMAT_STENCIL_TYPE
#ifndef GL_MAX_WIDTH
#define GL_MAX_WIDTH 0x827E
#endif //GL_MAX_WIDTH
#ifndef GL_MAX_HEIGHT
#define GL_MAX_HEIGHT 0x827F
#endif //GL_MAX_HEIGHT
#ifndef GL_MAX_DEPTH
#define GL_MAX_DEPTH 0x8280
#endif //GL_MAX_DEPTH
#ifndef GL_MAX_LAYERS
#define GL_MAX_LAYERS 0x8281
#endif //GL_MAX_LAYERS
#ifndef GL_MAX_COMBINED_DIMENSIONS
#define GL_MAX_COMBINED_DIMENSIONS 0x8282
#endif //GL_MAX_COMBINED_DIMENSIONS
#ifndef GL_COLOR_COMPONENTS
#define GL_COLOR_COMPONENTS 0x8283
#endif //GL_COLOR_COMPONENTS
#ifndef GL_DEPTH_COMPONENTS
#define GL_DEPTH_COMPONENTS 0x8284
#endif //GL_DEPTH_COMPONENTS
#ifndef GL_STENCIL_COMPONENTS
#define GL_STENCIL_COMPONENTS 0x8285
#endif //GL_STENCIL_COMPONENTS
#ifndef GL_COLOR_RENDERABLE
#define GL_COLOR_RENDERABLE 0x8286
#endif //GL_COLOR_RENDERABLE
#ifndef GL_DEPTH_RENDERABLE
#define GL_DEPTH_RENDERABLE 0x8287
#endif //GL_DEPTH_RENDERABLE
#ifndef GL_STENCIL_RENDERABLE
#define GL_STENCIL_RENDERABLE 0x8288
#endif //GL_STENCIL_RENDERABLE
#ifndef GL_FRAMEBUFFER_RENDERABLE
#define GL_FRAMEBUFFER_RENDERABLE 0x8289
#endif //GL_FRAMEBUFFER_RENDERABLE
#ifndef GL_FRAMEBUFFER_RENDERABLE_LAYERED
#define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A
#endif //GL_FRAMEBUFFER_RENDERABLE_LAYERED
#ifndef GL_FRAMEBUFFER_BLEND
#define GL_FRAMEBUFFER_BLEND 0x828B
#endif //GL_FRAMEBUFFER_BLEND
#ifndef GL_READ_PIXELS
#define GL_READ_PIXELS 0x828C
#endif //GL_READ_PIXELS
#ifndef GL_READ_PIXELS_FORMAT
#define GL_READ_PIXELS_FORMAT 0x828D
#endif //GL_READ_PIXELS_FORMAT
#ifndef GL_READ_PIXELS_TYPE
#define GL_READ_PIXELS_TYPE 0x828E
#endif //GL_READ_PIXELS_TYPE
#ifndef GL_TEXTURE_IMAGE_FORMAT
#define GL_TEXTURE_IMAGE_FORMAT 0x828F
#endif //GL_TEXTURE_IMAGE_FORMAT
#ifndef GL_TEXTURE_IMAGE_TYPE
#define GL_TEXTURE_IMAGE_TYPE 0x8290
#endif //GL_TEXTURE_IMAGE_TYPE
#ifndef GL_GET_TEXTURE_IMAGE_FORMAT
#define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291
#endif //GL_GET_TEXTURE_IMAGE_FORMAT
#ifndef GL_GET_TEXTURE_IMAGE_TYPE
#define GL_GET_TEXTURE_IMAGE_TYPE 0x8292
#endif //GL_GET_TEXTURE_IMAGE_TYPE
#ifndef GL_MIPMAP
#define GL_MIPMAP 0x8293
#endif //GL_MIPMAP
#ifndef GL_MANUAL_GENERATE_MIPMAP
#define GL_MANUAL_GENERATE_MIPMAP 0x8294
#endif //GL_MANUAL_GENERATE_MIPMAP
#ifndef GL_AUTO_GENERATE_MIPMAP
#define GL_AUTO_GENERATE_MIPMAP 0x8295
#endif //GL_AUTO_GENERATE_MIPMAP
#ifndef GL_COLOR_ENCODING
#define GL_COLOR_ENCODING 0x8296
#endif //GL_COLOR_ENCODING
#ifndef GL_SRGB_READ
#define GL_SRGB_READ 0x8297
#endif //GL_SRGB_READ
#ifndef GL_SRGB_WRITE
#define GL_SRGB_WRITE 0x8298
#endif //GL_SRGB_WRITE
#ifndef GL_SRGB_DECODE_ARB
#define GL_SRGB_DECODE_ARB 0x8299
#endif //GL_SRGB_DECODE_ARB
#ifndef GL_FILTER
#define GL_FILTER 0x829A
#endif //GL_FILTER
#ifndef GL_VERTEX_TEXTURE
#define GL_VERTEX_TEXTURE 0x829B
#endif //GL_VERTEX_TEXTURE
#ifndef GL_TESS_CONTROL_TEXTURE
#define GL_TESS_CONTROL_TEXTURE 0x829C
#endif //GL_TESS_CONTROL_TEXTURE
#ifndef GL_TESS_EVALUATION_TEXTURE
#define GL_TESS_EVALUATION_TEXTURE 0x829D
#endif //GL_TESS_EVALUATION_TEXTURE
#ifndef GL_GEOMETRY_TEXTURE
#define GL_GEOMETRY_TEXTURE 0x829E
#endif //GL_GEOMETRY_TEXTURE
#ifndef GL_FRAGMENT_TEXTURE
#define GL_FRAGMENT_TEXTURE 0x829F
#endif //GL_FRAGMENT_TEXTURE
#ifndef GL_COMPUTE_TEXTURE
#define GL_COMPUTE_TEXTURE 0x82A0
#endif //GL_COMPUTE_TEXTURE
#ifndef GL_TEXTURE_SHADOW
#define GL_TEXTURE_SHADOW 0x82A1
#endif //GL_TEXTURE_SHADOW
#ifndef GL_TEXTURE_GATHER
#define GL_TEXTURE_GATHER 0x82A2
#endif //GL_TEXTURE_GATHER
#ifndef GL_TEXTURE_GATHER_SHADOW
#define GL_TEXTURE_GATHER_SHADOW 0x82A3
#endif //GL_TEXTURE_GATHER_SHADOW
#ifndef GL_SHADER_IMAGE_LOAD
#define GL_SHADER_IMAGE_LOAD 0x82A4
#endif //GL_SHADER_IMAGE_LOAD
#ifndef GL_SHADER_IMAGE_STORE
#define GL_SHADER_IMAGE_STORE 0x82A5
#endif //GL_SHADER_IMAGE_STORE
#ifndef GL_SHADER_IMAGE_ATOMIC
#define GL_SHADER_IMAGE_ATOMIC 0x82A6
#endif //GL_SHADER_IMAGE_ATOMIC
#ifndef GL_IMAGE_TEXEL_SIZE
#define GL_IMAGE_TEXEL_SIZE 0x82A7
#endif //GL_IMAGE_TEXEL_SIZE
#ifndef GL_IMAGE_COMPATIBILITY_CLASS
#define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8
#endif //GL_IMAGE_COMPATIBILITY_CLASS
#ifndef GL_IMAGE_PIXEL_FORMAT
#define GL_IMAGE_PIXEL_FORMAT 0x82A9
#endif //GL_IMAGE_PIXEL_FORMAT
#ifndef GL_IMAGE_PIXEL_TYPE
#define GL_IMAGE_PIXEL_TYPE 0x82AA
#endif //GL_IMAGE_PIXEL_TYPE
#ifndef GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST
#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC
#endif //GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST
#ifndef GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST
#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD
#endif //GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST
#ifndef GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE
#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE
#endif //GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE
#ifndef GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE
#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF
#endif //GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE
#ifndef GL_TEXTURE_COMPRESSED_BLOCK_WIDTH
#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1
#endif //GL_TEXTURE_COMPRESSED_BLOCK_WIDTH
#ifndef GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT
#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2
#endif //GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT
#ifndef GL_TEXTURE_COMPRESSED_BLOCK_SIZE
#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3
#endif //GL_TEXTURE_COMPRESSED_BLOCK_SIZE
#ifndef GL_CLEAR_BUFFER
#define GL_CLEAR_BUFFER 0x82B4
#endif //GL_CLEAR_BUFFER
#ifndef GL_TEXTURE_VIEW
#define GL_TEXTURE_VIEW 0x82B5
#endif //GL_TEXTURE_VIEW
#ifndef GL_VIEW_COMPATIBILITY_CLASS
#define GL_VIEW_COMPATIBILITY_CLASS 0x82B6
#endif //GL_VIEW_COMPATIBILITY_CLASS
#ifndef GL_FULL_SUPPORT
#define GL_FULL_SUPPORT 0x82B7
#endif //GL_FULL_SUPPORT
#ifndef GL_CAVEAT_SUPPORT
#define GL_CAVEAT_SUPPORT 0x82B8
#endif //GL_CAVEAT_SUPPORT
#ifndef GL_IMAGE_CLASS_4_X_32
#define GL_IMAGE_CLASS_4_X_32 0x82B9
#endif //GL_IMAGE_CLASS_4_X_32
#ifndef GL_IMAGE_CLASS_2_X_32
#define GL_IMAGE_CLASS_2_X_32 0x82BA
#endif //GL_IMAGE_CLASS_2_X_32
#ifndef GL_IMAGE_CLASS_1_X_32
#define GL_IMAGE_CLASS_1_X_32 0x82BB
#endif //GL_IMAGE_CLASS_1_X_32
#ifndef GL_IMAGE_CLASS_4_X_16
#define GL_IMAGE_CLASS_4_X_16 0x82BC
#endif //GL_IMAGE_CLASS_4_X_16
#ifndef GL_IMAGE_CLASS_2_X_16
#define GL_IMAGE_CLASS_2_X_16 0x82BD
#endif //GL_IMAGE_CLASS_2_X_16
#ifndef GL_IMAGE_CLASS_1_X_16
#define GL_IMAGE_CLASS_1_X_16 0x82BE
#endif //GL_IMAGE_CLASS_1_X_16
#ifndef GL_IMAGE_CLASS_4_X_8
#define GL_IMAGE_CLASS_4_X_8 0x82BF
#endif //GL_IMAGE_CLASS_4_X_8
#ifndef GL_IMAGE_CLASS_2_X_8
#define GL_IMAGE_CLASS_2_X_8 0x82C0
#endif //GL_IMAGE_CLASS_2_X_8
#ifndef GL_IMAGE_CLASS_1_X_8
#define GL_IMAGE_CLASS_1_X_8 0x82C1
#endif //GL_IMAGE_CLASS_1_X_8
#ifndef GL_IMAGE_CLASS_11_11_10
#define GL_IMAGE_CLASS_11_11_10 0x82C2
#endif //GL_IMAGE_CLASS_11_11_10
#ifndef GL_IMAGE_CLASS_10_10_10_2
#define GL_IMAGE_CLASS_10_10_10_2 0x82C3
#endif //GL_IMAGE_CLASS_10_10_10_2
#ifndef GL_VIEW_CLASS_128_BITS
#define GL_VIEW_CLASS_128_BITS 0x82C4
#endif //GL_VIEW_CLASS_128_BITS
#ifndef GL_VIEW_CLASS_96_BITS
#define GL_VIEW_CLASS_96_BITS 0x82C5
#endif //GL_VIEW_CLASS_96_BITS
#ifndef GL_VIEW_CLASS_64_BITS
#define GL_VIEW_CLASS_64_BITS 0x82C6
#endif //GL_VIEW_CLASS_64_BITS
#ifndef GL_VIEW_CLASS_48_BITS
#define GL_VIEW_CLASS_48_BITS 0x82C7
#endif //GL_VIEW_CLASS_48_BITS
#ifndef GL_VIEW_CLASS_32_BITS
#define GL_VIEW_CLASS_32_BITS 0x82C8
#endif //GL_VIEW_CLASS_32_BITS
#ifndef GL_VIEW_CLASS_24_BITS
#define GL_VIEW_CLASS_24_BITS 0x82C9
#endif //GL_VIEW_CLASS_24_BITS
#ifndef GL_VIEW_CLASS_16_BITS
#define GL_VIEW_CLASS_16_BITS 0x82CA
#endif //GL_VIEW_CLASS_16_BITS
#ifndef GL_VIEW_CLASS_8_BITS
#define GL_VIEW_CLASS_8_BITS 0x82CB
#endif //GL_VIEW_CLASS_8_BITS
#ifndef GL_VIEW_CLASS_S3TC_DXT1_RGB
#define GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC
#endif //GL_VIEW_CLASS_S3TC_DXT1_RGB
#ifndef GL_VIEW_CLASS_S3TC_DXT1_RGBA
#define GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD
#endif //GL_VIEW_CLASS_S3TC_DXT1_RGBA
#ifndef GL_VIEW_CLASS_S3TC_DXT3_RGBA
#define GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE
#endif //GL_VIEW_CLASS_S3TC_DXT3_RGBA
#ifndef GL_VIEW_CLASS_S3TC_DXT5_RGBA
#define GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF
#endif //GL_VIEW_CLASS_S3TC_DXT5_RGBA
#ifndef GL_VIEW_CLASS_RGTC1_RED
#define GL_VIEW_CLASS_RGTC1_RED 0x82D0
#endif //GL_VIEW_CLASS_RGTC1_RED
#ifndef GL_VIEW_CLASS_RGTC2_RG
#define GL_VIEW_CLASS_RGTC2_RG 0x82D1
#endif //GL_VIEW_CLASS_RGTC2_RG
#ifndef GL_VIEW_CLASS_BPTC_UNORM
#define GL_VIEW_CLASS_BPTC_UNORM 0x82D2
#endif //GL_VIEW_CLASS_BPTC_UNORM
#ifndef GL_VIEW_CLASS_BPTC_FLOAT
#define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3
#endif //GL_VIEW_CLASS_BPTC_FLOAT
#ifndef GL_TEXTURE_RECTANGLE
#define GL_TEXTURE_RECTANGLE 0x84F5
#endif //GL_TEXTURE_RECTANGLE
#ifndef GL_TEXTURE_CUBE_MAP
#define GL_TEXTURE_CUBE_MAP 0x8513
#endif //GL_TEXTURE_CUBE_MAP
#ifndef GL_TEXTURE_COMPRESSED
#define GL_TEXTURE_COMPRESSED 0x86A1
#endif //GL_TEXTURE_COMPRESSED
#ifndef GL_TEXTURE_1D_ARRAY
#define GL_TEXTURE_1D_ARRAY 0x8C18
#endif //GL_TEXTURE_1D_ARRAY
#ifndef GL_TEXTURE_2D_ARRAY
#define GL_TEXTURE_2D_ARRAY 0x8C1A
#endif //GL_TEXTURE_2D_ARRAY
#ifndef GL_TEXTURE_BUFFER
#define GL_TEXTURE_BUFFER 0x8C2A
#endif //GL_TEXTURE_BUFFER
#ifndef GL_RENDERBUFFER
#define GL_RENDERBUFFER 0x8D41
#endif //GL_RENDERBUFFER
#ifndef GL_TEXTURE_CUBE_MAP_ARRAY
#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009
#endif //GL_TEXTURE_CUBE_MAP_ARRAY
#ifndef GL_IMAGE_FORMAT_COMPATIBILITY_TYPE
#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7
#endif //GL_IMAGE_FORMAT_COMPATIBILITY_TYPE
#ifndef GL_TEXTURE_2D_MULTISAMPLE
#define GL_TEXTURE_2D_MULTISAMPLE 0x9100
#endif //GL_TEXTURE_2D_MULTISAMPLE
#ifndef GL_TEXTURE_2D_MULTISAMPLE_ARRAY
#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
#endif //GL_TEXTURE_2D_MULTISAMPLE_ARRAY
#ifndef GL_NUM_SAMPLE_COUNTS
#define GL_NUM_SAMPLE_COUNTS 0x9380
#endif //GL_NUM_SAMPLE_COUNTS
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETINTERNALFORMATI64VPROC_HPP)(GLenum,GLenum,GLenum,GLsizei,GLint64 *);
static inline void GetInternalformati64v(GLenum target1,GLenum internalformat1,GLenum pname1,GLsizei bufSize1,GLint64 * params1)
{
	static PFNGLGETINTERNALFORMATI64VPROC_HPP fn=reinterpret_cast<PFNGLGETINTERNALFORMATI64VPROC_HPP>(_impl::_get_proc_address("glGetInternalformati64v","GL_ARB_internalformat_query2"));
	 fn(target1,internalformat1,pname1,bufSize1,params1);
}}
#endif

#ifndef GL_ARB_invalidate_subdata
#define GL_ARB_invalidate_subdata
extern "C" {
}
namespace gl{

typedef void (*PFNGLINVALIDATEBUFFERDATAPROC_HPP)(GLuint);
static inline void InvalidateBufferData(GLuint buffer1)
{
	static PFNGLINVALIDATEBUFFERDATAPROC_HPP fn=reinterpret_cast<PFNGLINVALIDATEBUFFERDATAPROC_HPP>(_impl::_get_proc_address("glInvalidateBufferData","GL_ARB_invalidate_subdata"));
	 fn(buffer1);
}
typedef void (*PFNGLINVALIDATEBUFFERSUBDATAPROC_HPP)(GLuint,GLintptr,GLsizeiptr);
static inline void InvalidateBufferSubData(GLuint buffer1,GLintptr offset1,GLsizeiptr length1)
{
	static PFNGLINVALIDATEBUFFERSUBDATAPROC_HPP fn=reinterpret_cast<PFNGLINVALIDATEBUFFERSUBDATAPROC_HPP>(_impl::_get_proc_address("glInvalidateBufferSubData","GL_ARB_invalidate_subdata"));
	 fn(buffer1,offset1,length1);
}
typedef void (*PFNGLINVALIDATEFRAMEBUFFERPROC_HPP)(GLenum,GLsizei,const GLenum *);
static inline void InvalidateFramebuffer(GLenum target1,GLsizei numAttachments1,const GLenum * attachments1)
{
	static PFNGLINVALIDATEFRAMEBUFFERPROC_HPP fn=reinterpret_cast<PFNGLINVALIDATEFRAMEBUFFERPROC_HPP>(_impl::_get_proc_address("glInvalidateFramebuffer","GL_ARB_invalidate_subdata"));
	 fn(target1,numAttachments1,attachments1);
}
typedef void (*PFNGLINVALIDATESUBFRAMEBUFFERPROC_HPP)(GLenum,GLsizei,const GLenum *,GLint,GLint,GLsizei,GLsizei);
static inline void InvalidateSubFramebuffer(GLenum target1,GLsizei numAttachments1,const GLenum * attachments1,GLint x1,GLint y1,GLsizei width1,GLsizei height1)
{
	static PFNGLINVALIDATESUBFRAMEBUFFERPROC_HPP fn=reinterpret_cast<PFNGLINVALIDATESUBFRAMEBUFFERPROC_HPP>(_impl::_get_proc_address("glInvalidateSubFramebuffer","GL_ARB_invalidate_subdata"));
	 fn(target1,numAttachments1,attachments1,x1,y1,width1,height1);
}
typedef void (*PFNGLINVALIDATETEXIMAGEPROC_HPP)(GLuint,GLint);
static inline void InvalidateTexImage(GLuint texture1,GLint level1)
{
	static PFNGLINVALIDATETEXIMAGEPROC_HPP fn=reinterpret_cast<PFNGLINVALIDATETEXIMAGEPROC_HPP>(_impl::_get_proc_address("glInvalidateTexImage","GL_ARB_invalidate_subdata"));
	 fn(texture1,level1);
}
typedef void (*PFNGLINVALIDATETEXSUBIMAGEPROC_HPP)(GLuint,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei);
static inline void InvalidateTexSubImage(GLuint texture1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLsizei width1,GLsizei height1,GLsizei depth1)
{
	static PFNGLINVALIDATETEXSUBIMAGEPROC_HPP fn=reinterpret_cast<PFNGLINVALIDATETEXSUBIMAGEPROC_HPP>(_impl::_get_proc_address("glInvalidateTexSubImage","GL_ARB_invalidate_subdata"));
	 fn(texture1,level1,xoffset1,yoffset1,zoffset1,width1,height1,depth1);
}}
#endif

#ifndef GL_ARB_map_buffer_alignment
#define GL_ARB_map_buffer_alignment
#ifndef GL_MIN_MAP_BUFFER_ALIGNMENT
#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC
#endif //GL_MIN_MAP_BUFFER_ALIGNMENT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_map_buffer_range
#define GL_ARB_map_buffer_range
#ifndef GL_MAP_READ_BIT
#define GL_MAP_READ_BIT 0x0001
#endif //GL_MAP_READ_BIT
#ifndef GL_MAP_WRITE_BIT
#define GL_MAP_WRITE_BIT 0x0002
#endif //GL_MAP_WRITE_BIT
#ifndef GL_MAP_INVALIDATE_RANGE_BIT
#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004
#endif //GL_MAP_INVALIDATE_RANGE_BIT
#ifndef GL_MAP_INVALIDATE_BUFFER_BIT
#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
#endif //GL_MAP_INVALIDATE_BUFFER_BIT
#ifndef GL_MAP_FLUSH_EXPLICIT_BIT
#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
#endif //GL_MAP_FLUSH_EXPLICIT_BIT
#ifndef GL_MAP_UNSYNCHRONIZED_BIT
#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020
#endif //GL_MAP_UNSYNCHRONIZED_BIT
extern "C" {
}
namespace gl{

typedef void (*PFNGLFLUSHMAPPEDBUFFERRANGEPROC_HPP)(GLenum,GLintptr,GLsizeiptr);
static inline void FlushMappedBufferRange(GLenum target1,GLintptr offset1,GLsizeiptr length1)
{
	static PFNGLFLUSHMAPPEDBUFFERRANGEPROC_HPP fn=reinterpret_cast<PFNGLFLUSHMAPPEDBUFFERRANGEPROC_HPP>(_impl::_get_proc_address("glFlushMappedBufferRange","GL_ARB_map_buffer_range"));
	 fn(target1,offset1,length1);
}
typedef void * (*PFNGLMAPBUFFERRANGEPROC_HPP)(GLenum,GLintptr,GLsizeiptr,GLbitfield);
static inline void * MapBufferRange(GLenum target1,GLintptr offset1,GLsizeiptr length1,GLbitfield access1)
{
	static PFNGLMAPBUFFERRANGEPROC_HPP fn=reinterpret_cast<PFNGLMAPBUFFERRANGEPROC_HPP>(_impl::_get_proc_address("glMapBufferRange","GL_ARB_map_buffer_range"));
	return fn(target1,offset1,length1,access1);
}}
#endif

#ifndef GL_ARB_matrix_palette
#define GL_ARB_matrix_palette
#ifndef GL_MATRIX_PALETTE_ARB
#define GL_MATRIX_PALETTE_ARB 0x8840
#endif //GL_MATRIX_PALETTE_ARB
#ifndef GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB
#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841
#endif //GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB
#ifndef GL_MAX_PALETTE_MATRICES_ARB
#define GL_MAX_PALETTE_MATRICES_ARB 0x8842
#endif //GL_MAX_PALETTE_MATRICES_ARB
#ifndef GL_CURRENT_PALETTE_MATRIX_ARB
#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843
#endif //GL_CURRENT_PALETTE_MATRIX_ARB
#ifndef GL_MATRIX_INDEX_ARRAY_ARB
#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844
#endif //GL_MATRIX_INDEX_ARRAY_ARB
#ifndef GL_CURRENT_MATRIX_INDEX_ARB
#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845
#endif //GL_CURRENT_MATRIX_INDEX_ARB
#ifndef GL_MATRIX_INDEX_ARRAY_SIZE_ARB
#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846
#endif //GL_MATRIX_INDEX_ARRAY_SIZE_ARB
#ifndef GL_MATRIX_INDEX_ARRAY_TYPE_ARB
#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847
#endif //GL_MATRIX_INDEX_ARRAY_TYPE_ARB
#ifndef GL_MATRIX_INDEX_ARRAY_STRIDE_ARB
#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848
#endif //GL_MATRIX_INDEX_ARRAY_STRIDE_ARB
#ifndef GL_MATRIX_INDEX_ARRAY_POINTER_ARB
#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849
#endif //GL_MATRIX_INDEX_ARRAY_POINTER_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLCURRENTPALETTEMATRIXARBPROC_HPP)(GLint);
static inline void CurrentPaletteMatrixARB(GLint index1)
{
	static PFNGLCURRENTPALETTEMATRIXARBPROC_HPP fn=reinterpret_cast<PFNGLCURRENTPALETTEMATRIXARBPROC_HPP>(_impl::_get_proc_address("glCurrentPaletteMatrixARB","GL_ARB_matrix_palette"));
	 fn(index1);
}
typedef void (*PFNGLMATRIXINDEXPOINTERARBPROC_HPP)(GLint,GLenum,GLsizei,const void *);
static inline void MatrixIndexPointerARB(GLint size1,GLenum type1,GLsizei stride1,const void * pointer1)
{
	static PFNGLMATRIXINDEXPOINTERARBPROC_HPP fn=reinterpret_cast<PFNGLMATRIXINDEXPOINTERARBPROC_HPP>(_impl::_get_proc_address("glMatrixIndexPointerARB","GL_ARB_matrix_palette"));
	 fn(size1,type1,stride1,pointer1);
}
typedef void (*PFNGLMATRIXINDEXUBVARBPROC_HPP)(GLint,const GLubyte *);
static inline void MatrixIndexubvARB(GLint size1,const GLubyte * indices1)
{
	static PFNGLMATRIXINDEXUBVARBPROC_HPP fn=reinterpret_cast<PFNGLMATRIXINDEXUBVARBPROC_HPP>(_impl::_get_proc_address("glMatrixIndexubvARB","GL_ARB_matrix_palette"));
	 fn(size1,indices1);
}
typedef void (*PFNGLMATRIXINDEXUIVARBPROC_HPP)(GLint,const GLuint *);
static inline void MatrixIndexuivARB(GLint size1,const GLuint * indices1)
{
	static PFNGLMATRIXINDEXUIVARBPROC_HPP fn=reinterpret_cast<PFNGLMATRIXINDEXUIVARBPROC_HPP>(_impl::_get_proc_address("glMatrixIndexuivARB","GL_ARB_matrix_palette"));
	 fn(size1,indices1);
}
typedef void (*PFNGLMATRIXINDEXUSVARBPROC_HPP)(GLint,const GLushort *);
static inline void MatrixIndexusvARB(GLint size1,const GLushort * indices1)
{
	static PFNGLMATRIXINDEXUSVARBPROC_HPP fn=reinterpret_cast<PFNGLMATRIXINDEXUSVARBPROC_HPP>(_impl::_get_proc_address("glMatrixIndexusvARB","GL_ARB_matrix_palette"));
	 fn(size1,indices1);
}}
#endif

#ifndef GL_ARB_multi_bind
#define GL_ARB_multi_bind
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDBUFFERSBASEPROC_HPP)(GLenum,GLuint,GLsizei,const GLuint *);
static inline void BindBuffersBase(GLenum target1,GLuint first1,GLsizei count1,const GLuint * buffers1)
{
	static PFNGLBINDBUFFERSBASEPROC_HPP fn=reinterpret_cast<PFNGLBINDBUFFERSBASEPROC_HPP>(_impl::_get_proc_address("glBindBuffersBase","GL_ARB_multi_bind"));
	 fn(target1,first1,count1,buffers1);
}
typedef void (*PFNGLBINDBUFFERSRANGEPROC_HPP)(GLenum,GLuint,GLsizei,const GLuint *,const GLintptr *,const GLsizeiptr *);
static inline void BindBuffersRange(GLenum target1,GLuint first1,GLsizei count1,const GLuint * buffers1,const GLintptr * offsets1,const GLsizeiptr * sizes1)
{
	static PFNGLBINDBUFFERSRANGEPROC_HPP fn=reinterpret_cast<PFNGLBINDBUFFERSRANGEPROC_HPP>(_impl::_get_proc_address("glBindBuffersRange","GL_ARB_multi_bind"));
	 fn(target1,first1,count1,buffers1,offsets1,sizes1);
}
typedef void (*PFNGLBINDIMAGETEXTURESPROC_HPP)(GLuint,GLsizei,const GLuint *);
static inline void BindImageTextures(GLuint first1,GLsizei count1,const GLuint * textures1)
{
	static PFNGLBINDIMAGETEXTURESPROC_HPP fn=reinterpret_cast<PFNGLBINDIMAGETEXTURESPROC_HPP>(_impl::_get_proc_address("glBindImageTextures","GL_ARB_multi_bind"));
	 fn(first1,count1,textures1);
}
typedef void (*PFNGLBINDSAMPLERSPROC_HPP)(GLuint,GLsizei,const GLuint *);
static inline void BindSamplers(GLuint first1,GLsizei count1,const GLuint * samplers1)
{
	static PFNGLBINDSAMPLERSPROC_HPP fn=reinterpret_cast<PFNGLBINDSAMPLERSPROC_HPP>(_impl::_get_proc_address("glBindSamplers","GL_ARB_multi_bind"));
	 fn(first1,count1,samplers1);
}
typedef void (*PFNGLBINDTEXTURESPROC_HPP)(GLuint,GLsizei,const GLuint *);
static inline void BindTextures(GLuint first1,GLsizei count1,const GLuint * textures1)
{
	static PFNGLBINDTEXTURESPROC_HPP fn=reinterpret_cast<PFNGLBINDTEXTURESPROC_HPP>(_impl::_get_proc_address("glBindTextures","GL_ARB_multi_bind"));
	 fn(first1,count1,textures1);
}
typedef void (*PFNGLBINDVERTEXBUFFERSPROC_HPP)(GLuint,GLsizei,const GLuint *,const GLintptr *,const GLsizei *);
static inline void BindVertexBuffers(GLuint first1,GLsizei count1,const GLuint * buffers1,const GLintptr * offsets1,const GLsizei * strides1)
{
	static PFNGLBINDVERTEXBUFFERSPROC_HPP fn=reinterpret_cast<PFNGLBINDVERTEXBUFFERSPROC_HPP>(_impl::_get_proc_address("glBindVertexBuffers","GL_ARB_multi_bind"));
	 fn(first1,count1,buffers1,offsets1,strides1);
}}
#endif

#ifndef GL_ARB_multi_draw_indirect
#define GL_ARB_multi_draw_indirect
extern "C" {
}
namespace gl{

typedef void (*PFNGLMULTIDRAWARRAYSINDIRECTPROC_HPP)(GLenum,const void *,GLsizei,GLsizei);
static inline void MultiDrawArraysIndirect(GLenum mode1,const void * indirect1,GLsizei drawcount1,GLsizei stride1)
{
	static PFNGLMULTIDRAWARRAYSINDIRECTPROC_HPP fn=reinterpret_cast<PFNGLMULTIDRAWARRAYSINDIRECTPROC_HPP>(_impl::_get_proc_address("glMultiDrawArraysIndirect","GL_ARB_multi_draw_indirect"));
	 fn(mode1,indirect1,drawcount1,stride1);
}
typedef void (*PFNGLMULTIDRAWELEMENTSINDIRECTPROC_HPP)(GLenum,GLenum,const void *,GLsizei,GLsizei);
static inline void MultiDrawElementsIndirect(GLenum mode1,GLenum type1,const void * indirect1,GLsizei drawcount1,GLsizei stride1)
{
	static PFNGLMULTIDRAWELEMENTSINDIRECTPROC_HPP fn=reinterpret_cast<PFNGLMULTIDRAWELEMENTSINDIRECTPROC_HPP>(_impl::_get_proc_address("glMultiDrawElementsIndirect","GL_ARB_multi_draw_indirect"));
	 fn(mode1,type1,indirect1,drawcount1,stride1);
}}
#endif

#ifndef GL_ARB_multisample
#define GL_ARB_multisample
#ifndef GL_MULTISAMPLE_BIT_ARB
#define GL_MULTISAMPLE_BIT_ARB 0x20000000
#endif //GL_MULTISAMPLE_BIT_ARB
#ifndef GL_MULTISAMPLE_ARB
#define GL_MULTISAMPLE_ARB 0x809D
#endif //GL_MULTISAMPLE_ARB
#ifndef GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E
#endif //GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
#ifndef GL_SAMPLE_ALPHA_TO_ONE_ARB
#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F
#endif //GL_SAMPLE_ALPHA_TO_ONE_ARB
#ifndef GL_SAMPLE_COVERAGE_ARB
#define GL_SAMPLE_COVERAGE_ARB 0x80A0
#endif //GL_SAMPLE_COVERAGE_ARB
#ifndef GL_SAMPLE_BUFFERS_ARB
#define GL_SAMPLE_BUFFERS_ARB 0x80A8
#endif //GL_SAMPLE_BUFFERS_ARB
#ifndef GL_SAMPLES_ARB
#define GL_SAMPLES_ARB 0x80A9
#endif //GL_SAMPLES_ARB
#ifndef GL_SAMPLE_COVERAGE_VALUE_ARB
#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA
#endif //GL_SAMPLE_COVERAGE_VALUE_ARB
#ifndef GL_SAMPLE_COVERAGE_INVERT_ARB
#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB
#endif //GL_SAMPLE_COVERAGE_INVERT_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLSAMPLECOVERAGEARBPROC_HPP)(GLfloat,GLboolean);
static inline void SampleCoverageARB(GLfloat value1,GLboolean invert1)
{
	static PFNGLSAMPLECOVERAGEARBPROC_HPP fn=reinterpret_cast<PFNGLSAMPLECOVERAGEARBPROC_HPP>(_impl::_get_proc_address("glSampleCoverageARB","GL_ARB_multisample"));
	 fn(value1,invert1);
}}
#endif

#ifndef GL_ARB_multitexture
#define GL_ARB_multitexture
#ifndef GL_TEXTURE0_ARB
#define GL_TEXTURE0_ARB 0x84C0
#endif //GL_TEXTURE0_ARB
#ifndef GL_TEXTURE1_ARB
#define GL_TEXTURE1_ARB 0x84C1
#endif //GL_TEXTURE1_ARB
#ifndef GL_TEXTURE2_ARB
#define GL_TEXTURE2_ARB 0x84C2
#endif //GL_TEXTURE2_ARB
#ifndef GL_TEXTURE3_ARB
#define GL_TEXTURE3_ARB 0x84C3
#endif //GL_TEXTURE3_ARB
#ifndef GL_TEXTURE4_ARB
#define GL_TEXTURE4_ARB 0x84C4
#endif //GL_TEXTURE4_ARB
#ifndef GL_TEXTURE5_ARB
#define GL_TEXTURE5_ARB 0x84C5
#endif //GL_TEXTURE5_ARB
#ifndef GL_TEXTURE6_ARB
#define GL_TEXTURE6_ARB 0x84C6
#endif //GL_TEXTURE6_ARB
#ifndef GL_TEXTURE7_ARB
#define GL_TEXTURE7_ARB 0x84C7
#endif //GL_TEXTURE7_ARB
#ifndef GL_TEXTURE8_ARB
#define GL_TEXTURE8_ARB 0x84C8
#endif //GL_TEXTURE8_ARB
#ifndef GL_TEXTURE9_ARB
#define GL_TEXTURE9_ARB 0x84C9
#endif //GL_TEXTURE9_ARB
#ifndef GL_TEXTURE10_ARB
#define GL_TEXTURE10_ARB 0x84CA
#endif //GL_TEXTURE10_ARB
#ifndef GL_TEXTURE11_ARB
#define GL_TEXTURE11_ARB 0x84CB
#endif //GL_TEXTURE11_ARB
#ifndef GL_TEXTURE12_ARB
#define GL_TEXTURE12_ARB 0x84CC
#endif //GL_TEXTURE12_ARB
#ifndef GL_TEXTURE13_ARB
#define GL_TEXTURE13_ARB 0x84CD
#endif //GL_TEXTURE13_ARB
#ifndef GL_TEXTURE14_ARB
#define GL_TEXTURE14_ARB 0x84CE
#endif //GL_TEXTURE14_ARB
#ifndef GL_TEXTURE15_ARB
#define GL_TEXTURE15_ARB 0x84CF
#endif //GL_TEXTURE15_ARB
#ifndef GL_TEXTURE16_ARB
#define GL_TEXTURE16_ARB 0x84D0
#endif //GL_TEXTURE16_ARB
#ifndef GL_TEXTURE17_ARB
#define GL_TEXTURE17_ARB 0x84D1
#endif //GL_TEXTURE17_ARB
#ifndef GL_TEXTURE18_ARB
#define GL_TEXTURE18_ARB 0x84D2
#endif //GL_TEXTURE18_ARB
#ifndef GL_TEXTURE19_ARB
#define GL_TEXTURE19_ARB 0x84D3
#endif //GL_TEXTURE19_ARB
#ifndef GL_TEXTURE20_ARB
#define GL_TEXTURE20_ARB 0x84D4
#endif //GL_TEXTURE20_ARB
#ifndef GL_TEXTURE21_ARB
#define GL_TEXTURE21_ARB 0x84D5
#endif //GL_TEXTURE21_ARB
#ifndef GL_TEXTURE22_ARB
#define GL_TEXTURE22_ARB 0x84D6
#endif //GL_TEXTURE22_ARB
#ifndef GL_TEXTURE23_ARB
#define GL_TEXTURE23_ARB 0x84D7
#endif //GL_TEXTURE23_ARB
#ifndef GL_TEXTURE24_ARB
#define GL_TEXTURE24_ARB 0x84D8
#endif //GL_TEXTURE24_ARB
#ifndef GL_TEXTURE25_ARB
#define GL_TEXTURE25_ARB 0x84D9
#endif //GL_TEXTURE25_ARB
#ifndef GL_TEXTURE26_ARB
#define GL_TEXTURE26_ARB 0x84DA
#endif //GL_TEXTURE26_ARB
#ifndef GL_TEXTURE27_ARB
#define GL_TEXTURE27_ARB 0x84DB
#endif //GL_TEXTURE27_ARB
#ifndef GL_TEXTURE28_ARB
#define GL_TEXTURE28_ARB 0x84DC
#endif //GL_TEXTURE28_ARB
#ifndef GL_TEXTURE29_ARB
#define GL_TEXTURE29_ARB 0x84DD
#endif //GL_TEXTURE29_ARB
#ifndef GL_TEXTURE30_ARB
#define GL_TEXTURE30_ARB 0x84DE
#endif //GL_TEXTURE30_ARB
#ifndef GL_TEXTURE31_ARB
#define GL_TEXTURE31_ARB 0x84DF
#endif //GL_TEXTURE31_ARB
#ifndef GL_ACTIVE_TEXTURE_ARB
#define GL_ACTIVE_TEXTURE_ARB 0x84E0
#endif //GL_ACTIVE_TEXTURE_ARB
#ifndef GL_CLIENT_ACTIVE_TEXTURE_ARB
#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1
#endif //GL_CLIENT_ACTIVE_TEXTURE_ARB
#ifndef GL_MAX_TEXTURE_UNITS_ARB
#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2
#endif //GL_MAX_TEXTURE_UNITS_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLACTIVETEXTUREARBPROC_HPP)(GLenum);
static inline void ActiveTextureARB(GLenum texture1)
{
	static PFNGLACTIVETEXTUREARBPROC_HPP fn=reinterpret_cast<PFNGLACTIVETEXTUREARBPROC_HPP>(_impl::_get_proc_address("glActiveTextureARB","GL_ARB_multitexture"));
	 fn(texture1);
}
typedef void (*PFNGLCLIENTACTIVETEXTUREARBPROC_HPP)(GLenum);
static inline void ClientActiveTextureARB(GLenum texture1)
{
	static PFNGLCLIENTACTIVETEXTUREARBPROC_HPP fn=reinterpret_cast<PFNGLCLIENTACTIVETEXTUREARBPROC_HPP>(_impl::_get_proc_address("glClientActiveTextureARB","GL_ARB_multitexture"));
	 fn(texture1);
}
typedef void (*PFNGLMULTITEXCOORD1DARBPROC_HPP)(GLenum,GLdouble);
static inline void MultiTexCoord1dARB(GLenum target1,GLdouble s1)
{
	static PFNGLMULTITEXCOORD1DARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD1DARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord1dARB","GL_ARB_multitexture"));
	 fn(target1,s1);
}
typedef void (*PFNGLMULTITEXCOORD1DVARBPROC_HPP)(GLenum,const GLdouble *);
static inline void MultiTexCoord1dvARB(GLenum target1,const GLdouble * v1)
{
	static PFNGLMULTITEXCOORD1DVARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD1DVARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord1dvARB","GL_ARB_multitexture"));
	 fn(target1,v1);
}
typedef void (*PFNGLMULTITEXCOORD1FARBPROC_HPP)(GLenum,GLfloat);
static inline void MultiTexCoord1fARB(GLenum target1,GLfloat s1)
{
	static PFNGLMULTITEXCOORD1FARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD1FARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord1fARB","GL_ARB_multitexture"));
	 fn(target1,s1);
}
typedef void (*PFNGLMULTITEXCOORD1FVARBPROC_HPP)(GLenum,const GLfloat *);
static inline void MultiTexCoord1fvARB(GLenum target1,const GLfloat * v1)
{
	static PFNGLMULTITEXCOORD1FVARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD1FVARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord1fvARB","GL_ARB_multitexture"));
	 fn(target1,v1);
}
typedef void (*PFNGLMULTITEXCOORD1IARBPROC_HPP)(GLenum,GLint);
static inline void MultiTexCoord1iARB(GLenum target1,GLint s1)
{
	static PFNGLMULTITEXCOORD1IARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD1IARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord1iARB","GL_ARB_multitexture"));
	 fn(target1,s1);
}
typedef void (*PFNGLMULTITEXCOORD1IVARBPROC_HPP)(GLenum,const GLint *);
static inline void MultiTexCoord1ivARB(GLenum target1,const GLint * v1)
{
	static PFNGLMULTITEXCOORD1IVARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD1IVARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord1ivARB","GL_ARB_multitexture"));
	 fn(target1,v1);
}
typedef void (*PFNGLMULTITEXCOORD1SARBPROC_HPP)(GLenum,GLshort);
static inline void MultiTexCoord1sARB(GLenum target1,GLshort s1)
{
	static PFNGLMULTITEXCOORD1SARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD1SARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord1sARB","GL_ARB_multitexture"));
	 fn(target1,s1);
}
typedef void (*PFNGLMULTITEXCOORD1SVARBPROC_HPP)(GLenum,const GLshort *);
static inline void MultiTexCoord1svARB(GLenum target1,const GLshort * v1)
{
	static PFNGLMULTITEXCOORD1SVARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD1SVARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord1svARB","GL_ARB_multitexture"));
	 fn(target1,v1);
}
typedef void (*PFNGLMULTITEXCOORD2DARBPROC_HPP)(GLenum,GLdouble,GLdouble);
static inline void MultiTexCoord2dARB(GLenum target1,GLdouble s1,GLdouble t1)
{
	static PFNGLMULTITEXCOORD2DARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD2DARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord2dARB","GL_ARB_multitexture"));
	 fn(target1,s1,t1);
}
typedef void (*PFNGLMULTITEXCOORD2DVARBPROC_HPP)(GLenum,const GLdouble *);
static inline void MultiTexCoord2dvARB(GLenum target1,const GLdouble * v1)
{
	static PFNGLMULTITEXCOORD2DVARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD2DVARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord2dvARB","GL_ARB_multitexture"));
	 fn(target1,v1);
}
typedef void (*PFNGLMULTITEXCOORD2FARBPROC_HPP)(GLenum,GLfloat,GLfloat);
static inline void MultiTexCoord2fARB(GLenum target1,GLfloat s1,GLfloat t1)
{
	static PFNGLMULTITEXCOORD2FARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD2FARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord2fARB","GL_ARB_multitexture"));
	 fn(target1,s1,t1);
}
typedef void (*PFNGLMULTITEXCOORD2FVARBPROC_HPP)(GLenum,const GLfloat *);
static inline void MultiTexCoord2fvARB(GLenum target1,const GLfloat * v1)
{
	static PFNGLMULTITEXCOORD2FVARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD2FVARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord2fvARB","GL_ARB_multitexture"));
	 fn(target1,v1);
}
typedef void (*PFNGLMULTITEXCOORD2IARBPROC_HPP)(GLenum,GLint,GLint);
static inline void MultiTexCoord2iARB(GLenum target1,GLint s1,GLint t1)
{
	static PFNGLMULTITEXCOORD2IARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD2IARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord2iARB","GL_ARB_multitexture"));
	 fn(target1,s1,t1);
}
typedef void (*PFNGLMULTITEXCOORD2IVARBPROC_HPP)(GLenum,const GLint *);
static inline void MultiTexCoord2ivARB(GLenum target1,const GLint * v1)
{
	static PFNGLMULTITEXCOORD2IVARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD2IVARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord2ivARB","GL_ARB_multitexture"));
	 fn(target1,v1);
}
typedef void (*PFNGLMULTITEXCOORD2SARBPROC_HPP)(GLenum,GLshort,GLshort);
static inline void MultiTexCoord2sARB(GLenum target1,GLshort s1,GLshort t1)
{
	static PFNGLMULTITEXCOORD2SARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD2SARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord2sARB","GL_ARB_multitexture"));
	 fn(target1,s1,t1);
}
typedef void (*PFNGLMULTITEXCOORD2SVARBPROC_HPP)(GLenum,const GLshort *);
static inline void MultiTexCoord2svARB(GLenum target1,const GLshort * v1)
{
	static PFNGLMULTITEXCOORD2SVARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD2SVARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord2svARB","GL_ARB_multitexture"));
	 fn(target1,v1);
}
typedef void (*PFNGLMULTITEXCOORD3DARBPROC_HPP)(GLenum,GLdouble,GLdouble,GLdouble);
static inline void MultiTexCoord3dARB(GLenum target1,GLdouble s1,GLdouble t1,GLdouble r1)
{
	static PFNGLMULTITEXCOORD3DARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD3DARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord3dARB","GL_ARB_multitexture"));
	 fn(target1,s1,t1,r1);
}
typedef void (*PFNGLMULTITEXCOORD3DVARBPROC_HPP)(GLenum,const GLdouble *);
static inline void MultiTexCoord3dvARB(GLenum target1,const GLdouble * v1)
{
	static PFNGLMULTITEXCOORD3DVARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD3DVARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord3dvARB","GL_ARB_multitexture"));
	 fn(target1,v1);
}
typedef void (*PFNGLMULTITEXCOORD3FARBPROC_HPP)(GLenum,GLfloat,GLfloat,GLfloat);
static inline void MultiTexCoord3fARB(GLenum target1,GLfloat s1,GLfloat t1,GLfloat r1)
{
	static PFNGLMULTITEXCOORD3FARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD3FARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord3fARB","GL_ARB_multitexture"));
	 fn(target1,s1,t1,r1);
}
typedef void (*PFNGLMULTITEXCOORD3FVARBPROC_HPP)(GLenum,const GLfloat *);
static inline void MultiTexCoord3fvARB(GLenum target1,const GLfloat * v1)
{
	static PFNGLMULTITEXCOORD3FVARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD3FVARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord3fvARB","GL_ARB_multitexture"));
	 fn(target1,v1);
}
typedef void (*PFNGLMULTITEXCOORD3IARBPROC_HPP)(GLenum,GLint,GLint,GLint);
static inline void MultiTexCoord3iARB(GLenum target1,GLint s1,GLint t1,GLint r1)
{
	static PFNGLMULTITEXCOORD3IARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD3IARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord3iARB","GL_ARB_multitexture"));
	 fn(target1,s1,t1,r1);
}
typedef void (*PFNGLMULTITEXCOORD3IVARBPROC_HPP)(GLenum,const GLint *);
static inline void MultiTexCoord3ivARB(GLenum target1,const GLint * v1)
{
	static PFNGLMULTITEXCOORD3IVARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD3IVARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord3ivARB","GL_ARB_multitexture"));
	 fn(target1,v1);
}
typedef void (*PFNGLMULTITEXCOORD3SARBPROC_HPP)(GLenum,GLshort,GLshort,GLshort);
static inline void MultiTexCoord3sARB(GLenum target1,GLshort s1,GLshort t1,GLshort r1)
{
	static PFNGLMULTITEXCOORD3SARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD3SARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord3sARB","GL_ARB_multitexture"));
	 fn(target1,s1,t1,r1);
}
typedef void (*PFNGLMULTITEXCOORD3SVARBPROC_HPP)(GLenum,const GLshort *);
static inline void MultiTexCoord3svARB(GLenum target1,const GLshort * v1)
{
	static PFNGLMULTITEXCOORD3SVARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD3SVARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord3svARB","GL_ARB_multitexture"));
	 fn(target1,v1);
}
typedef void (*PFNGLMULTITEXCOORD4DARBPROC_HPP)(GLenum,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void MultiTexCoord4dARB(GLenum target1,GLdouble s1,GLdouble t1,GLdouble r1,GLdouble q1)
{
	static PFNGLMULTITEXCOORD4DARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD4DARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord4dARB","GL_ARB_multitexture"));
	 fn(target1,s1,t1,r1,q1);
}
typedef void (*PFNGLMULTITEXCOORD4DVARBPROC_HPP)(GLenum,const GLdouble *);
static inline void MultiTexCoord4dvARB(GLenum target1,const GLdouble * v1)
{
	static PFNGLMULTITEXCOORD4DVARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD4DVARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord4dvARB","GL_ARB_multitexture"));
	 fn(target1,v1);
}
typedef void (*PFNGLMULTITEXCOORD4FARBPROC_HPP)(GLenum,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void MultiTexCoord4fARB(GLenum target1,GLfloat s1,GLfloat t1,GLfloat r1,GLfloat q1)
{
	static PFNGLMULTITEXCOORD4FARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD4FARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord4fARB","GL_ARB_multitexture"));
	 fn(target1,s1,t1,r1,q1);
}
typedef void (*PFNGLMULTITEXCOORD4FVARBPROC_HPP)(GLenum,const GLfloat *);
static inline void MultiTexCoord4fvARB(GLenum target1,const GLfloat * v1)
{
	static PFNGLMULTITEXCOORD4FVARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD4FVARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord4fvARB","GL_ARB_multitexture"));
	 fn(target1,v1);
}
typedef void (*PFNGLMULTITEXCOORD4IARBPROC_HPP)(GLenum,GLint,GLint,GLint,GLint);
static inline void MultiTexCoord4iARB(GLenum target1,GLint s1,GLint t1,GLint r1,GLint q1)
{
	static PFNGLMULTITEXCOORD4IARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD4IARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord4iARB","GL_ARB_multitexture"));
	 fn(target1,s1,t1,r1,q1);
}
typedef void (*PFNGLMULTITEXCOORD4IVARBPROC_HPP)(GLenum,const GLint *);
static inline void MultiTexCoord4ivARB(GLenum target1,const GLint * v1)
{
	static PFNGLMULTITEXCOORD4IVARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD4IVARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord4ivARB","GL_ARB_multitexture"));
	 fn(target1,v1);
}
typedef void (*PFNGLMULTITEXCOORD4SARBPROC_HPP)(GLenum,GLshort,GLshort,GLshort,GLshort);
static inline void MultiTexCoord4sARB(GLenum target1,GLshort s1,GLshort t1,GLshort r1,GLshort q1)
{
	static PFNGLMULTITEXCOORD4SARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD4SARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord4sARB","GL_ARB_multitexture"));
	 fn(target1,s1,t1,r1,q1);
}
typedef void (*PFNGLMULTITEXCOORD4SVARBPROC_HPP)(GLenum,const GLshort *);
static inline void MultiTexCoord4svARB(GLenum target1,const GLshort * v1)
{
	static PFNGLMULTITEXCOORD4SVARBPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD4SVARBPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord4svARB","GL_ARB_multitexture"));
	 fn(target1,v1);
}}
#endif

#ifndef GL_ARB_occlusion_query
#define GL_ARB_occlusion_query
#ifndef GL_QUERY_COUNTER_BITS_ARB
#define GL_QUERY_COUNTER_BITS_ARB 0x8864
#endif //GL_QUERY_COUNTER_BITS_ARB
#ifndef GL_CURRENT_QUERY_ARB
#define GL_CURRENT_QUERY_ARB 0x8865
#endif //GL_CURRENT_QUERY_ARB
#ifndef GL_QUERY_RESULT_ARB
#define GL_QUERY_RESULT_ARB 0x8866
#endif //GL_QUERY_RESULT_ARB
#ifndef GL_QUERY_RESULT_AVAILABLE_ARB
#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867
#endif //GL_QUERY_RESULT_AVAILABLE_ARB
#ifndef GL_SAMPLES_PASSED_ARB
#define GL_SAMPLES_PASSED_ARB 0x8914
#endif //GL_SAMPLES_PASSED_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLBEGINQUERYARBPROC_HPP)(GLenum,GLuint);
static inline void BeginQueryARB(GLenum target1,GLuint id1)
{
	static PFNGLBEGINQUERYARBPROC_HPP fn=reinterpret_cast<PFNGLBEGINQUERYARBPROC_HPP>(_impl::_get_proc_address("glBeginQueryARB","GL_ARB_occlusion_query"));
	 fn(target1,id1);
}
typedef void (*PFNGLDELETEQUERIESARBPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteQueriesARB(GLsizei n1,const GLuint * ids1)
{
	static PFNGLDELETEQUERIESARBPROC_HPP fn=reinterpret_cast<PFNGLDELETEQUERIESARBPROC_HPP>(_impl::_get_proc_address("glDeleteQueriesARB","GL_ARB_occlusion_query"));
	 fn(n1,ids1);
}
typedef void (*PFNGLENDQUERYARBPROC_HPP)(GLenum);
static inline void EndQueryARB(GLenum target1)
{
	static PFNGLENDQUERYARBPROC_HPP fn=reinterpret_cast<PFNGLENDQUERYARBPROC_HPP>(_impl::_get_proc_address("glEndQueryARB","GL_ARB_occlusion_query"));
	 fn(target1);
}
typedef void (*PFNGLGENQUERIESARBPROC_HPP)(GLsizei,GLuint *);
static inline void GenQueriesARB(GLsizei n1,GLuint * ids1)
{
	static PFNGLGENQUERIESARBPROC_HPP fn=reinterpret_cast<PFNGLGENQUERIESARBPROC_HPP>(_impl::_get_proc_address("glGenQueriesARB","GL_ARB_occlusion_query"));
	 fn(n1,ids1);
}
typedef void (*PFNGLGETQUERYOBJECTIVARBPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetQueryObjectivARB(GLuint id1,GLenum pname1,GLint * params1)
{
	static PFNGLGETQUERYOBJECTIVARBPROC_HPP fn=reinterpret_cast<PFNGLGETQUERYOBJECTIVARBPROC_HPP>(_impl::_get_proc_address("glGetQueryObjectivARB","GL_ARB_occlusion_query"));
	 fn(id1,pname1,params1);
}
typedef void (*PFNGLGETQUERYOBJECTUIVARBPROC_HPP)(GLuint,GLenum,GLuint *);
static inline void GetQueryObjectuivARB(GLuint id1,GLenum pname1,GLuint * params1)
{
	static PFNGLGETQUERYOBJECTUIVARBPROC_HPP fn=reinterpret_cast<PFNGLGETQUERYOBJECTUIVARBPROC_HPP>(_impl::_get_proc_address("glGetQueryObjectuivARB","GL_ARB_occlusion_query"));
	 fn(id1,pname1,params1);
}
typedef void (*PFNGLGETQUERYIVARBPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetQueryivARB(GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETQUERYIVARBPROC_HPP fn=reinterpret_cast<PFNGLGETQUERYIVARBPROC_HPP>(_impl::_get_proc_address("glGetQueryivARB","GL_ARB_occlusion_query"));
	 fn(target1,pname1,params1);
}
typedef GLboolean (*PFNGLISQUERYARBPROC_HPP)(GLuint);
static inline GLboolean IsQueryARB(GLuint id1)
{
	static PFNGLISQUERYARBPROC_HPP fn=reinterpret_cast<PFNGLISQUERYARBPROC_HPP>(_impl::_get_proc_address("glIsQueryARB","GL_ARB_occlusion_query"));
	return fn(id1);
}}
#endif

#ifndef GL_ARB_occlusion_query2
#define GL_ARB_occlusion_query2
#ifndef GL_ANY_SAMPLES_PASSED
#define GL_ANY_SAMPLES_PASSED 0x8C2F
#endif //GL_ANY_SAMPLES_PASSED
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_pipeline_statistics_query
#define GL_ARB_pipeline_statistics_query
#ifndef GL_VERTICES_SUBMITTED_ARB
#define GL_VERTICES_SUBMITTED_ARB 0x82EE
#endif //GL_VERTICES_SUBMITTED_ARB
#ifndef GL_PRIMITIVES_SUBMITTED_ARB
#define GL_PRIMITIVES_SUBMITTED_ARB 0x82EF
#endif //GL_PRIMITIVES_SUBMITTED_ARB
#ifndef GL_VERTEX_SHADER_INVOCATIONS_ARB
#define GL_VERTEX_SHADER_INVOCATIONS_ARB 0x82F0
#endif //GL_VERTEX_SHADER_INVOCATIONS_ARB
#ifndef GL_TESS_CONTROL_SHADER_PATCHES_ARB
#define GL_TESS_CONTROL_SHADER_PATCHES_ARB 0x82F1
#endif //GL_TESS_CONTROL_SHADER_PATCHES_ARB
#ifndef GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB
#define GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB 0x82F2
#endif //GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB
#ifndef GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB
#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB 0x82F3
#endif //GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB
#ifndef GL_FRAGMENT_SHADER_INVOCATIONS_ARB
#define GL_FRAGMENT_SHADER_INVOCATIONS_ARB 0x82F4
#endif //GL_FRAGMENT_SHADER_INVOCATIONS_ARB
#ifndef GL_COMPUTE_SHADER_INVOCATIONS_ARB
#define GL_COMPUTE_SHADER_INVOCATIONS_ARB 0x82F5
#endif //GL_COMPUTE_SHADER_INVOCATIONS_ARB
#ifndef GL_CLIPPING_INPUT_PRIMITIVES_ARB
#define GL_CLIPPING_INPUT_PRIMITIVES_ARB 0x82F6
#endif //GL_CLIPPING_INPUT_PRIMITIVES_ARB
#ifndef GL_CLIPPING_OUTPUT_PRIMITIVES_ARB
#define GL_CLIPPING_OUTPUT_PRIMITIVES_ARB 0x82F7
#endif //GL_CLIPPING_OUTPUT_PRIMITIVES_ARB
#ifndef GL_GEOMETRY_SHADER_INVOCATIONS
#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F
#endif //GL_GEOMETRY_SHADER_INVOCATIONS
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_pixel_buffer_object
#define GL_ARB_pixel_buffer_object
#ifndef GL_PIXEL_PACK_BUFFER_ARB
#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB
#endif //GL_PIXEL_PACK_BUFFER_ARB
#ifndef GL_PIXEL_UNPACK_BUFFER_ARB
#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC
#endif //GL_PIXEL_UNPACK_BUFFER_ARB
#ifndef GL_PIXEL_PACK_BUFFER_BINDING_ARB
#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED
#endif //GL_PIXEL_PACK_BUFFER_BINDING_ARB
#ifndef GL_PIXEL_UNPACK_BUFFER_BINDING_ARB
#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF
#endif //GL_PIXEL_UNPACK_BUFFER_BINDING_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_point_parameters
#define GL_ARB_point_parameters
#ifndef GL_POINT_SIZE_MIN_ARB
#define GL_POINT_SIZE_MIN_ARB 0x8126
#endif //GL_POINT_SIZE_MIN_ARB
#ifndef GL_POINT_SIZE_MAX_ARB
#define GL_POINT_SIZE_MAX_ARB 0x8127
#endif //GL_POINT_SIZE_MAX_ARB
#ifndef GL_POINT_FADE_THRESHOLD_SIZE_ARB
#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128
#endif //GL_POINT_FADE_THRESHOLD_SIZE_ARB
#ifndef GL_POINT_DISTANCE_ATTENUATION_ARB
#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129
#endif //GL_POINT_DISTANCE_ATTENUATION_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLPOINTPARAMETERFARBPROC_HPP)(GLenum,GLfloat);
static inline void PointParameterfARB(GLenum pname1,GLfloat param1)
{
	static PFNGLPOINTPARAMETERFARBPROC_HPP fn=reinterpret_cast<PFNGLPOINTPARAMETERFARBPROC_HPP>(_impl::_get_proc_address("glPointParameterfARB","GL_ARB_point_parameters"));
	 fn(pname1,param1);
}
typedef void (*PFNGLPOINTPARAMETERFVARBPROC_HPP)(GLenum,const GLfloat *);
static inline void PointParameterfvARB(GLenum pname1,const GLfloat * params1)
{
	static PFNGLPOINTPARAMETERFVARBPROC_HPP fn=reinterpret_cast<PFNGLPOINTPARAMETERFVARBPROC_HPP>(_impl::_get_proc_address("glPointParameterfvARB","GL_ARB_point_parameters"));
	 fn(pname1,params1);
}}
#endif

#ifndef GL_ARB_point_sprite
#define GL_ARB_point_sprite
#ifndef GL_POINT_SPRITE_ARB
#define GL_POINT_SPRITE_ARB 0x8861
#endif //GL_POINT_SPRITE_ARB
#ifndef GL_COORD_REPLACE_ARB
#define GL_COORD_REPLACE_ARB 0x8862
#endif //GL_COORD_REPLACE_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_program_interface_query
#define GL_ARB_program_interface_query
#ifndef GL_NUM_COMPATIBLE_SUBROUTINES
#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A
#endif //GL_NUM_COMPATIBLE_SUBROUTINES
#ifndef GL_COMPATIBLE_SUBROUTINES
#define GL_COMPATIBLE_SUBROUTINES 0x8E4B
#endif //GL_COMPATIBLE_SUBROUTINES
#ifndef GL_ATOMIC_COUNTER_BUFFER
#define GL_ATOMIC_COUNTER_BUFFER 0x92C0
#endif //GL_ATOMIC_COUNTER_BUFFER
#ifndef GL_UNIFORM
#define GL_UNIFORM 0x92E1
#endif //GL_UNIFORM
#ifndef GL_UNIFORM_BLOCK
#define GL_UNIFORM_BLOCK 0x92E2
#endif //GL_UNIFORM_BLOCK
#ifndef GL_PROGRAM_INPUT
#define GL_PROGRAM_INPUT 0x92E3
#endif //GL_PROGRAM_INPUT
#ifndef GL_PROGRAM_OUTPUT
#define GL_PROGRAM_OUTPUT 0x92E4
#endif //GL_PROGRAM_OUTPUT
#ifndef GL_BUFFER_VARIABLE
#define GL_BUFFER_VARIABLE 0x92E5
#endif //GL_BUFFER_VARIABLE
#ifndef GL_SHADER_STORAGE_BLOCK
#define GL_SHADER_STORAGE_BLOCK 0x92E6
#endif //GL_SHADER_STORAGE_BLOCK
#ifndef GL_IS_PER_PATCH
#define GL_IS_PER_PATCH 0x92E7
#endif //GL_IS_PER_PATCH
#ifndef GL_VERTEX_SUBROUTINE
#define GL_VERTEX_SUBROUTINE 0x92E8
#endif //GL_VERTEX_SUBROUTINE
#ifndef GL_TESS_CONTROL_SUBROUTINE
#define GL_TESS_CONTROL_SUBROUTINE 0x92E9
#endif //GL_TESS_CONTROL_SUBROUTINE
#ifndef GL_TESS_EVALUATION_SUBROUTINE
#define GL_TESS_EVALUATION_SUBROUTINE 0x92EA
#endif //GL_TESS_EVALUATION_SUBROUTINE
#ifndef GL_GEOMETRY_SUBROUTINE
#define GL_GEOMETRY_SUBROUTINE 0x92EB
#endif //GL_GEOMETRY_SUBROUTINE
#ifndef GL_FRAGMENT_SUBROUTINE
#define GL_FRAGMENT_SUBROUTINE 0x92EC
#endif //GL_FRAGMENT_SUBROUTINE
#ifndef GL_COMPUTE_SUBROUTINE
#define GL_COMPUTE_SUBROUTINE 0x92ED
#endif //GL_COMPUTE_SUBROUTINE
#ifndef GL_VERTEX_SUBROUTINE_UNIFORM
#define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE
#endif //GL_VERTEX_SUBROUTINE_UNIFORM
#ifndef GL_TESS_CONTROL_SUBROUTINE_UNIFORM
#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF
#endif //GL_TESS_CONTROL_SUBROUTINE_UNIFORM
#ifndef GL_TESS_EVALUATION_SUBROUTINE_UNIFORM
#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0
#endif //GL_TESS_EVALUATION_SUBROUTINE_UNIFORM
#ifndef GL_GEOMETRY_SUBROUTINE_UNIFORM
#define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1
#endif //GL_GEOMETRY_SUBROUTINE_UNIFORM
#ifndef GL_FRAGMENT_SUBROUTINE_UNIFORM
#define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2
#endif //GL_FRAGMENT_SUBROUTINE_UNIFORM
#ifndef GL_COMPUTE_SUBROUTINE_UNIFORM
#define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3
#endif //GL_COMPUTE_SUBROUTINE_UNIFORM
#ifndef GL_TRANSFORM_FEEDBACK_VARYING
#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4
#endif //GL_TRANSFORM_FEEDBACK_VARYING
#ifndef GL_ACTIVE_RESOURCES
#define GL_ACTIVE_RESOURCES 0x92F5
#endif //GL_ACTIVE_RESOURCES
#ifndef GL_MAX_NAME_LENGTH
#define GL_MAX_NAME_LENGTH 0x92F6
#endif //GL_MAX_NAME_LENGTH
#ifndef GL_MAX_NUM_ACTIVE_VARIABLES
#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7
#endif //GL_MAX_NUM_ACTIVE_VARIABLES
#ifndef GL_MAX_NUM_COMPATIBLE_SUBROUTINES
#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8
#endif //GL_MAX_NUM_COMPATIBLE_SUBROUTINES
#ifndef GL_NAME_LENGTH
#define GL_NAME_LENGTH 0x92F9
#endif //GL_NAME_LENGTH
#ifndef GL_TYPE
#define GL_TYPE 0x92FA
#endif //GL_TYPE
#ifndef GL_ARRAY_SIZE
#define GL_ARRAY_SIZE 0x92FB
#endif //GL_ARRAY_SIZE
#ifndef GL_OFFSET
#define GL_OFFSET 0x92FC
#endif //GL_OFFSET
#ifndef GL_BLOCK_INDEX
#define GL_BLOCK_INDEX 0x92FD
#endif //GL_BLOCK_INDEX
#ifndef GL_ARRAY_STRIDE
#define GL_ARRAY_STRIDE 0x92FE
#endif //GL_ARRAY_STRIDE
#ifndef GL_MATRIX_STRIDE
#define GL_MATRIX_STRIDE 0x92FF
#endif //GL_MATRIX_STRIDE
#ifndef GL_IS_ROW_MAJOR
#define GL_IS_ROW_MAJOR 0x9300
#endif //GL_IS_ROW_MAJOR
#ifndef GL_ATOMIC_COUNTER_BUFFER_INDEX
#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301
#endif //GL_ATOMIC_COUNTER_BUFFER_INDEX
#ifndef GL_BUFFER_BINDING
#define GL_BUFFER_BINDING 0x9302
#endif //GL_BUFFER_BINDING
#ifndef GL_BUFFER_DATA_SIZE
#define GL_BUFFER_DATA_SIZE 0x9303
#endif //GL_BUFFER_DATA_SIZE
#ifndef GL_NUM_ACTIVE_VARIABLES
#define GL_NUM_ACTIVE_VARIABLES 0x9304
#endif //GL_NUM_ACTIVE_VARIABLES
#ifndef GL_ACTIVE_VARIABLES
#define GL_ACTIVE_VARIABLES 0x9305
#endif //GL_ACTIVE_VARIABLES
#ifndef GL_REFERENCED_BY_VERTEX_SHADER
#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306
#endif //GL_REFERENCED_BY_VERTEX_SHADER
#ifndef GL_REFERENCED_BY_TESS_CONTROL_SHADER
#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307
#endif //GL_REFERENCED_BY_TESS_CONTROL_SHADER
#ifndef GL_REFERENCED_BY_TESS_EVALUATION_SHADER
#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308
#endif //GL_REFERENCED_BY_TESS_EVALUATION_SHADER
#ifndef GL_REFERENCED_BY_GEOMETRY_SHADER
#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309
#endif //GL_REFERENCED_BY_GEOMETRY_SHADER
#ifndef GL_REFERENCED_BY_FRAGMENT_SHADER
#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A
#endif //GL_REFERENCED_BY_FRAGMENT_SHADER
#ifndef GL_REFERENCED_BY_COMPUTE_SHADER
#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B
#endif //GL_REFERENCED_BY_COMPUTE_SHADER
#ifndef GL_TOP_LEVEL_ARRAY_SIZE
#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C
#endif //GL_TOP_LEVEL_ARRAY_SIZE
#ifndef GL_TOP_LEVEL_ARRAY_STRIDE
#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D
#endif //GL_TOP_LEVEL_ARRAY_STRIDE
#ifndef GL_LOCATION
#define GL_LOCATION 0x930E
#endif //GL_LOCATION
#ifndef GL_LOCATION_INDEX
#define GL_LOCATION_INDEX 0x930F
#endif //GL_LOCATION_INDEX
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETPROGRAMINTERFACEIVPROC_HPP)(GLuint,GLenum,GLenum,GLint *);
static inline void GetProgramInterfaceiv(GLuint program1,GLenum programInterface1,GLenum pname1,GLint * params1)
{
	static PFNGLGETPROGRAMINTERFACEIVPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMINTERFACEIVPROC_HPP>(_impl::_get_proc_address("glGetProgramInterfaceiv","GL_ARB_program_interface_query"));
	 fn(program1,programInterface1,pname1,params1);
}
typedef GLuint (*PFNGLGETPROGRAMRESOURCEINDEXPROC_HPP)(GLuint,GLenum,const GLchar *);
static inline GLuint GetProgramResourceIndex(GLuint program1,GLenum programInterface1,const GLchar * name1)
{
	static PFNGLGETPROGRAMRESOURCEINDEXPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMRESOURCEINDEXPROC_HPP>(_impl::_get_proc_address("glGetProgramResourceIndex","GL_ARB_program_interface_query"));
	return fn(program1,programInterface1,name1);
}
typedef GLint (*PFNGLGETPROGRAMRESOURCELOCATIONPROC_HPP)(GLuint,GLenum,const GLchar *);
static inline GLint GetProgramResourceLocation(GLuint program1,GLenum programInterface1,const GLchar * name1)
{
	static PFNGLGETPROGRAMRESOURCELOCATIONPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMRESOURCELOCATIONPROC_HPP>(_impl::_get_proc_address("glGetProgramResourceLocation","GL_ARB_program_interface_query"));
	return fn(program1,programInterface1,name1);
}
typedef GLint (*PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC_HPP)(GLuint,GLenum,const GLchar *);
static inline GLint GetProgramResourceLocationIndex(GLuint program1,GLenum programInterface1,const GLchar * name1)
{
	static PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC_HPP>(_impl::_get_proc_address("glGetProgramResourceLocationIndex","GL_ARB_program_interface_query"));
	return fn(program1,programInterface1,name1);
}
typedef void (*PFNGLGETPROGRAMRESOURCENAMEPROC_HPP)(GLuint,GLenum,GLuint,GLsizei,GLsizei *,GLchar *);
static inline void GetProgramResourceName(GLuint program1,GLenum programInterface1,GLuint index1,GLsizei bufSize1,GLsizei * length1,GLchar * name1)
{
	static PFNGLGETPROGRAMRESOURCENAMEPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMRESOURCENAMEPROC_HPP>(_impl::_get_proc_address("glGetProgramResourceName","GL_ARB_program_interface_query"));
	 fn(program1,programInterface1,index1,bufSize1,length1,name1);
}
typedef void (*PFNGLGETPROGRAMRESOURCEIVPROC_HPP)(GLuint,GLenum,GLuint,GLsizei,const GLenum *,GLsizei,GLsizei *,GLint *);
static inline void GetProgramResourceiv(GLuint program1,GLenum programInterface1,GLuint index1,GLsizei propCount1,const GLenum * props1,GLsizei bufSize1,GLsizei * length1,GLint * params1)
{
	static PFNGLGETPROGRAMRESOURCEIVPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMRESOURCEIVPROC_HPP>(_impl::_get_proc_address("glGetProgramResourceiv","GL_ARB_program_interface_query"));
	 fn(program1,programInterface1,index1,propCount1,props1,bufSize1,length1,params1);
}}
#endif

#ifndef GL_ARB_provoking_vertex
#define GL_ARB_provoking_vertex
#ifndef GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION
#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C
#endif //GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION
#ifndef GL_FIRST_VERTEX_CONVENTION
#define GL_FIRST_VERTEX_CONVENTION 0x8E4D
#endif //GL_FIRST_VERTEX_CONVENTION
#ifndef GL_LAST_VERTEX_CONVENTION
#define GL_LAST_VERTEX_CONVENTION 0x8E4E
#endif //GL_LAST_VERTEX_CONVENTION
#ifndef GL_PROVOKING_VERTEX
#define GL_PROVOKING_VERTEX 0x8E4F
#endif //GL_PROVOKING_VERTEX
extern "C" {
}
namespace gl{

typedef void (*PFNGLPROVOKINGVERTEXPROC_HPP)(GLenum);
static inline void ProvokingVertex(GLenum mode1)
{
	static PFNGLPROVOKINGVERTEXPROC_HPP fn=reinterpret_cast<PFNGLPROVOKINGVERTEXPROC_HPP>(_impl::_get_proc_address("glProvokingVertex","GL_ARB_provoking_vertex"));
	 fn(mode1);
}}
#endif

#ifndef GL_ARB_query_buffer_object
#define GL_ARB_query_buffer_object
#ifndef GL_QUERY_BUFFER_BARRIER_BIT
#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000
#endif //GL_QUERY_BUFFER_BARRIER_BIT
#ifndef GL_QUERY_BUFFER
#define GL_QUERY_BUFFER 0x9192
#endif //GL_QUERY_BUFFER
#ifndef GL_QUERY_BUFFER_BINDING
#define GL_QUERY_BUFFER_BINDING 0x9193
#endif //GL_QUERY_BUFFER_BINDING
#ifndef GL_QUERY_RESULT_NO_WAIT
#define GL_QUERY_RESULT_NO_WAIT 0x9194
#endif //GL_QUERY_RESULT_NO_WAIT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_robust_buffer_access_behavior
#define GL_ARB_robust_buffer_access_behavior
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_robustness
#define GL_ARB_robustness
#ifndef GL_NO_ERROR
#define GL_NO_ERROR 0
#endif //GL_NO_ERROR
#ifndef GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB
#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004
#endif //GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB
#ifndef GL_LOSE_CONTEXT_ON_RESET_ARB
#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
#endif //GL_LOSE_CONTEXT_ON_RESET_ARB
#ifndef GL_GUILTY_CONTEXT_RESET_ARB
#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253
#endif //GL_GUILTY_CONTEXT_RESET_ARB
#ifndef GL_INNOCENT_CONTEXT_RESET_ARB
#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254
#endif //GL_INNOCENT_CONTEXT_RESET_ARB
#ifndef GL_UNKNOWN_CONTEXT_RESET_ARB
#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255
#endif //GL_UNKNOWN_CONTEXT_RESET_ARB
#ifndef GL_RESET_NOTIFICATION_STRATEGY_ARB
#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
#endif //GL_RESET_NOTIFICATION_STRATEGY_ARB
#ifndef GL_NO_RESET_NOTIFICATION_ARB
#define GL_NO_RESET_NOTIFICATION_ARB 0x8261
#endif //GL_NO_RESET_NOTIFICATION_ARB
extern "C" {
}
namespace gl{

typedef GLenum (*PFNGLGETGRAPHICSRESETSTATUSARBPROC_HPP)();
static inline GLenum GetGraphicsResetStatusARB()
{
	static PFNGLGETGRAPHICSRESETSTATUSARBPROC_HPP fn=reinterpret_cast<PFNGLGETGRAPHICSRESETSTATUSARBPROC_HPP>(_impl::_get_proc_address("glGetGraphicsResetStatusARB","GL_ARB_robustness"));
	return fn();
}
typedef void (*PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC_HPP)(GLenum,GLint,GLsizei,void *);
static inline void GetnCompressedTexImageARB(GLenum target1,GLint lod1,GLsizei bufSize1,void * img1)
{
	static PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC_HPP fn=reinterpret_cast<PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC_HPP>(_impl::_get_proc_address("glGetnCompressedTexImageARB","GL_ARB_robustness"));
	 fn(target1,lod1,bufSize1,img1);
}
typedef void (*PFNGLGETNTEXIMAGEARBPROC_HPP)(GLenum,GLint,GLenum,GLenum,GLsizei,void *);
static inline void GetnTexImageARB(GLenum target1,GLint level1,GLenum format1,GLenum type1,GLsizei bufSize1,void * img1)
{
	static PFNGLGETNTEXIMAGEARBPROC_HPP fn=reinterpret_cast<PFNGLGETNTEXIMAGEARBPROC_HPP>(_impl::_get_proc_address("glGetnTexImageARB","GL_ARB_robustness"));
	 fn(target1,level1,format1,type1,bufSize1,img1);
}
typedef void (*PFNGLGETNUNIFORMDVARBPROC_HPP)(GLuint,GLint,GLsizei,GLdouble *);
static inline void GetnUniformdvARB(GLuint program1,GLint location1,GLsizei bufSize1,GLdouble * params1)
{
	static PFNGLGETNUNIFORMDVARBPROC_HPP fn=reinterpret_cast<PFNGLGETNUNIFORMDVARBPROC_HPP>(_impl::_get_proc_address("glGetnUniformdvARB","GL_ARB_robustness"));
	 fn(program1,location1,bufSize1,params1);
}
typedef void (*PFNGLGETNUNIFORMFVARBPROC_HPP)(GLuint,GLint,GLsizei,GLfloat *);
static inline void GetnUniformfvARB(GLuint program1,GLint location1,GLsizei bufSize1,GLfloat * params1)
{
	static PFNGLGETNUNIFORMFVARBPROC_HPP fn=reinterpret_cast<PFNGLGETNUNIFORMFVARBPROC_HPP>(_impl::_get_proc_address("glGetnUniformfvARB","GL_ARB_robustness"));
	 fn(program1,location1,bufSize1,params1);
}
typedef void (*PFNGLGETNUNIFORMIVARBPROC_HPP)(GLuint,GLint,GLsizei,GLint *);
static inline void GetnUniformivARB(GLuint program1,GLint location1,GLsizei bufSize1,GLint * params1)
{
	static PFNGLGETNUNIFORMIVARBPROC_HPP fn=reinterpret_cast<PFNGLGETNUNIFORMIVARBPROC_HPP>(_impl::_get_proc_address("glGetnUniformivARB","GL_ARB_robustness"));
	 fn(program1,location1,bufSize1,params1);
}
typedef void (*PFNGLGETNUNIFORMUIVARBPROC_HPP)(GLuint,GLint,GLsizei,GLuint *);
static inline void GetnUniformuivARB(GLuint program1,GLint location1,GLsizei bufSize1,GLuint * params1)
{
	static PFNGLGETNUNIFORMUIVARBPROC_HPP fn=reinterpret_cast<PFNGLGETNUNIFORMUIVARBPROC_HPP>(_impl::_get_proc_address("glGetnUniformuivARB","GL_ARB_robustness"));
	 fn(program1,location1,bufSize1,params1);
}
typedef void (*PFNGLREADNPIXELSARBPROC_HPP)(GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,GLsizei,void *);
static inline void ReadnPixelsARB(GLint x1,GLint y1,GLsizei width1,GLsizei height1,GLenum format1,GLenum type1,GLsizei bufSize1,void * data1)
{
	static PFNGLREADNPIXELSARBPROC_HPP fn=reinterpret_cast<PFNGLREADNPIXELSARBPROC_HPP>(_impl::_get_proc_address("glReadnPixelsARB","GL_ARB_robustness"));
	 fn(x1,y1,width1,height1,format1,type1,bufSize1,data1);
}}
#endif

#ifndef GL_ARB_robustness_isolation
#define GL_ARB_robustness_isolation
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_sample_shading
#define GL_ARB_sample_shading
#ifndef GL_SAMPLE_SHADING_ARB
#define GL_SAMPLE_SHADING_ARB 0x8C36
#endif //GL_SAMPLE_SHADING_ARB
#ifndef GL_MIN_SAMPLE_SHADING_VALUE_ARB
#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37
#endif //GL_MIN_SAMPLE_SHADING_VALUE_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLMINSAMPLESHADINGARBPROC_HPP)(GLfloat);
static inline void MinSampleShadingARB(GLfloat value1)
{
	static PFNGLMINSAMPLESHADINGARBPROC_HPP fn=reinterpret_cast<PFNGLMINSAMPLESHADINGARBPROC_HPP>(_impl::_get_proc_address("glMinSampleShadingARB","GL_ARB_sample_shading"));
	 fn(value1);
}}
#endif

#ifndef GL_ARB_sampler_objects
#define GL_ARB_sampler_objects
#ifndef GL_SAMPLER_BINDING
#define GL_SAMPLER_BINDING 0x8919
#endif //GL_SAMPLER_BINDING
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDSAMPLERPROC_HPP)(GLuint,GLuint);
static inline void BindSampler(GLuint unit1,GLuint sampler1)
{
	static PFNGLBINDSAMPLERPROC_HPP fn=reinterpret_cast<PFNGLBINDSAMPLERPROC_HPP>(_impl::_get_proc_address("glBindSampler","GL_ARB_sampler_objects"));
	 fn(unit1,sampler1);
}
typedef void (*PFNGLDELETESAMPLERSPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteSamplers(GLsizei count1,const GLuint * samplers1)
{
	static PFNGLDELETESAMPLERSPROC_HPP fn=reinterpret_cast<PFNGLDELETESAMPLERSPROC_HPP>(_impl::_get_proc_address("glDeleteSamplers","GL_ARB_sampler_objects"));
	 fn(count1,samplers1);
}
typedef void (*PFNGLGENSAMPLERSPROC_HPP)(GLsizei,GLuint *);
static inline void GenSamplers(GLsizei count1,GLuint * samplers1)
{
	static PFNGLGENSAMPLERSPROC_HPP fn=reinterpret_cast<PFNGLGENSAMPLERSPROC_HPP>(_impl::_get_proc_address("glGenSamplers","GL_ARB_sampler_objects"));
	 fn(count1,samplers1);
}
typedef void (*PFNGLGETSAMPLERPARAMETERIIVPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetSamplerParameterIiv(GLuint sampler1,GLenum pname1,GLint * params1)
{
	static PFNGLGETSAMPLERPARAMETERIIVPROC_HPP fn=reinterpret_cast<PFNGLGETSAMPLERPARAMETERIIVPROC_HPP>(_impl::_get_proc_address("glGetSamplerParameterIiv","GL_ARB_sampler_objects"));
	 fn(sampler1,pname1,params1);
}
typedef void (*PFNGLGETSAMPLERPARAMETERIUIVPROC_HPP)(GLuint,GLenum,GLuint *);
static inline void GetSamplerParameterIuiv(GLuint sampler1,GLenum pname1,GLuint * params1)
{
	static PFNGLGETSAMPLERPARAMETERIUIVPROC_HPP fn=reinterpret_cast<PFNGLGETSAMPLERPARAMETERIUIVPROC_HPP>(_impl::_get_proc_address("glGetSamplerParameterIuiv","GL_ARB_sampler_objects"));
	 fn(sampler1,pname1,params1);
}
typedef void (*PFNGLGETSAMPLERPARAMETERFVPROC_HPP)(GLuint,GLenum,GLfloat *);
static inline void GetSamplerParameterfv(GLuint sampler1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETSAMPLERPARAMETERFVPROC_HPP fn=reinterpret_cast<PFNGLGETSAMPLERPARAMETERFVPROC_HPP>(_impl::_get_proc_address("glGetSamplerParameterfv","GL_ARB_sampler_objects"));
	 fn(sampler1,pname1,params1);
}
typedef void (*PFNGLGETSAMPLERPARAMETERIVPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetSamplerParameteriv(GLuint sampler1,GLenum pname1,GLint * params1)
{
	static PFNGLGETSAMPLERPARAMETERIVPROC_HPP fn=reinterpret_cast<PFNGLGETSAMPLERPARAMETERIVPROC_HPP>(_impl::_get_proc_address("glGetSamplerParameteriv","GL_ARB_sampler_objects"));
	 fn(sampler1,pname1,params1);
}
typedef GLboolean (*PFNGLISSAMPLERPROC_HPP)(GLuint);
static inline GLboolean IsSampler(GLuint sampler1)
{
	static PFNGLISSAMPLERPROC_HPP fn=reinterpret_cast<PFNGLISSAMPLERPROC_HPP>(_impl::_get_proc_address("glIsSampler","GL_ARB_sampler_objects"));
	return fn(sampler1);
}
typedef void (*PFNGLSAMPLERPARAMETERIIVPROC_HPP)(GLuint,GLenum,const GLint *);
static inline void SamplerParameterIiv(GLuint sampler1,GLenum pname1,const GLint * param1)
{
	static PFNGLSAMPLERPARAMETERIIVPROC_HPP fn=reinterpret_cast<PFNGLSAMPLERPARAMETERIIVPROC_HPP>(_impl::_get_proc_address("glSamplerParameterIiv","GL_ARB_sampler_objects"));
	 fn(sampler1,pname1,param1);
}
typedef void (*PFNGLSAMPLERPARAMETERIUIVPROC_HPP)(GLuint,GLenum,const GLuint *);
static inline void SamplerParameterIuiv(GLuint sampler1,GLenum pname1,const GLuint * param1)
{
	static PFNGLSAMPLERPARAMETERIUIVPROC_HPP fn=reinterpret_cast<PFNGLSAMPLERPARAMETERIUIVPROC_HPP>(_impl::_get_proc_address("glSamplerParameterIuiv","GL_ARB_sampler_objects"));
	 fn(sampler1,pname1,param1);
}
typedef void (*PFNGLSAMPLERPARAMETERFPROC_HPP)(GLuint,GLenum,GLfloat);
static inline void SamplerParameterf(GLuint sampler1,GLenum pname1,GLfloat param1)
{
	static PFNGLSAMPLERPARAMETERFPROC_HPP fn=reinterpret_cast<PFNGLSAMPLERPARAMETERFPROC_HPP>(_impl::_get_proc_address("glSamplerParameterf","GL_ARB_sampler_objects"));
	 fn(sampler1,pname1,param1);
}
typedef void (*PFNGLSAMPLERPARAMETERFVPROC_HPP)(GLuint,GLenum,const GLfloat *);
static inline void SamplerParameterfv(GLuint sampler1,GLenum pname1,const GLfloat * param1)
{
	static PFNGLSAMPLERPARAMETERFVPROC_HPP fn=reinterpret_cast<PFNGLSAMPLERPARAMETERFVPROC_HPP>(_impl::_get_proc_address("glSamplerParameterfv","GL_ARB_sampler_objects"));
	 fn(sampler1,pname1,param1);
}
typedef void (*PFNGLSAMPLERPARAMETERIPROC_HPP)(GLuint,GLenum,GLint);
static inline void SamplerParameteri(GLuint sampler1,GLenum pname1,GLint param1)
{
	static PFNGLSAMPLERPARAMETERIPROC_HPP fn=reinterpret_cast<PFNGLSAMPLERPARAMETERIPROC_HPP>(_impl::_get_proc_address("glSamplerParameteri","GL_ARB_sampler_objects"));
	 fn(sampler1,pname1,param1);
}
typedef void (*PFNGLSAMPLERPARAMETERIVPROC_HPP)(GLuint,GLenum,const GLint *);
static inline void SamplerParameteriv(GLuint sampler1,GLenum pname1,const GLint * param1)
{
	static PFNGLSAMPLERPARAMETERIVPROC_HPP fn=reinterpret_cast<PFNGLSAMPLERPARAMETERIVPROC_HPP>(_impl::_get_proc_address("glSamplerParameteriv","GL_ARB_sampler_objects"));
	 fn(sampler1,pname1,param1);
}}
#endif

#ifndef GL_ARB_seamless_cube_map
#define GL_ARB_seamless_cube_map
#ifndef GL_TEXTURE_CUBE_MAP_SEAMLESS
#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
#endif //GL_TEXTURE_CUBE_MAP_SEAMLESS
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_seamless_cubemap_per_texture
#define GL_ARB_seamless_cubemap_per_texture
#ifndef GL_TEXTURE_CUBE_MAP_SEAMLESS
#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
#endif //GL_TEXTURE_CUBE_MAP_SEAMLESS
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_separate_shader_objects
#define GL_ARB_separate_shader_objects
#ifndef GL_VERTEX_SHADER_BIT
#define GL_VERTEX_SHADER_BIT 0x00000001
#endif //GL_VERTEX_SHADER_BIT
#ifndef GL_FRAGMENT_SHADER_BIT
#define GL_FRAGMENT_SHADER_BIT 0x00000002
#endif //GL_FRAGMENT_SHADER_BIT
#ifndef GL_GEOMETRY_SHADER_BIT
#define GL_GEOMETRY_SHADER_BIT 0x00000004
#endif //GL_GEOMETRY_SHADER_BIT
#ifndef GL_TESS_CONTROL_SHADER_BIT
#define GL_TESS_CONTROL_SHADER_BIT 0x00000008
#endif //GL_TESS_CONTROL_SHADER_BIT
#ifndef GL_TESS_EVALUATION_SHADER_BIT
#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010
#endif //GL_TESS_EVALUATION_SHADER_BIT
#ifndef GL_PROGRAM_SEPARABLE
#define GL_PROGRAM_SEPARABLE 0x8258
#endif //GL_PROGRAM_SEPARABLE
#ifndef GL_ACTIVE_PROGRAM
#define GL_ACTIVE_PROGRAM 0x8259
#endif //GL_ACTIVE_PROGRAM
#ifndef GL_PROGRAM_PIPELINE_BINDING
#define GL_PROGRAM_PIPELINE_BINDING 0x825A
#endif //GL_PROGRAM_PIPELINE_BINDING
#ifndef GL_ALL_SHADER_BITS
#define GL_ALL_SHADER_BITS 0xFFFFFFFF
#endif //GL_ALL_SHADER_BITS
extern "C" {
}
namespace gl{

typedef void (*PFNGLACTIVESHADERPROGRAMPROC_HPP)(GLuint,GLuint);
static inline void ActiveShaderProgram(GLuint pipeline1,GLuint program1)
{
	static PFNGLACTIVESHADERPROGRAMPROC_HPP fn=reinterpret_cast<PFNGLACTIVESHADERPROGRAMPROC_HPP>(_impl::_get_proc_address("glActiveShaderProgram","GL_ARB_separate_shader_objects"));
	 fn(pipeline1,program1);
}
typedef void (*PFNGLBINDPROGRAMPIPELINEPROC_HPP)(GLuint);
static inline void BindProgramPipeline(GLuint pipeline1)
{
	static PFNGLBINDPROGRAMPIPELINEPROC_HPP fn=reinterpret_cast<PFNGLBINDPROGRAMPIPELINEPROC_HPP>(_impl::_get_proc_address("glBindProgramPipeline","GL_ARB_separate_shader_objects"));
	 fn(pipeline1);
}
typedef GLuint (*PFNGLCREATESHADERPROGRAMVPROC_HPP)(GLenum,GLsizei,const GLchar *const*);
static inline GLuint CreateShaderProgramv(GLenum type1,GLsizei count1,const GLchar *const* strings1)
{
	static PFNGLCREATESHADERPROGRAMVPROC_HPP fn=reinterpret_cast<PFNGLCREATESHADERPROGRAMVPROC_HPP>(_impl::_get_proc_address("glCreateShaderProgramv","GL_ARB_separate_shader_objects"));
	return fn(type1,count1,strings1);
}
typedef void (*PFNGLDELETEPROGRAMPIPELINESPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteProgramPipelines(GLsizei n1,const GLuint * pipelines1)
{
	static PFNGLDELETEPROGRAMPIPELINESPROC_HPP fn=reinterpret_cast<PFNGLDELETEPROGRAMPIPELINESPROC_HPP>(_impl::_get_proc_address("glDeleteProgramPipelines","GL_ARB_separate_shader_objects"));
	 fn(n1,pipelines1);
}
typedef void (*PFNGLGENPROGRAMPIPELINESPROC_HPP)(GLsizei,GLuint *);
static inline void GenProgramPipelines(GLsizei n1,GLuint * pipelines1)
{
	static PFNGLGENPROGRAMPIPELINESPROC_HPP fn=reinterpret_cast<PFNGLGENPROGRAMPIPELINESPROC_HPP>(_impl::_get_proc_address("glGenProgramPipelines","GL_ARB_separate_shader_objects"));
	 fn(n1,pipelines1);
}
typedef void (*PFNGLGETPROGRAMPIPELINEINFOLOGPROC_HPP)(GLuint,GLsizei,GLsizei *,GLchar *);
static inline void GetProgramPipelineInfoLog(GLuint pipeline1,GLsizei bufSize1,GLsizei * length1,GLchar * infoLog1)
{
	static PFNGLGETPROGRAMPIPELINEINFOLOGPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMPIPELINEINFOLOGPROC_HPP>(_impl::_get_proc_address("glGetProgramPipelineInfoLog","GL_ARB_separate_shader_objects"));
	 fn(pipeline1,bufSize1,length1,infoLog1);
}
typedef void (*PFNGLGETPROGRAMPIPELINEIVPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetProgramPipelineiv(GLuint pipeline1,GLenum pname1,GLint * params1)
{
	static PFNGLGETPROGRAMPIPELINEIVPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMPIPELINEIVPROC_HPP>(_impl::_get_proc_address("glGetProgramPipelineiv","GL_ARB_separate_shader_objects"));
	 fn(pipeline1,pname1,params1);
}
typedef GLboolean (*PFNGLISPROGRAMPIPELINEPROC_HPP)(GLuint);
static inline GLboolean IsProgramPipeline(GLuint pipeline1)
{
	static PFNGLISPROGRAMPIPELINEPROC_HPP fn=reinterpret_cast<PFNGLISPROGRAMPIPELINEPROC_HPP>(_impl::_get_proc_address("glIsProgramPipeline","GL_ARB_separate_shader_objects"));
	return fn(pipeline1);
}
typedef void (*PFNGLPROGRAMUNIFORM1DPROC_HPP)(GLuint,GLint,GLdouble);
static inline void ProgramUniform1d(GLuint program1,GLint location1,GLdouble v01)
{
	static PFNGLPROGRAMUNIFORM1DPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1DPROC_HPP>(_impl::_get_proc_address("glProgramUniform1d","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,v01);
}
typedef void (*PFNGLPROGRAMUNIFORM1DVPROC_HPP)(GLuint,GLint,GLsizei,const GLdouble *);
static inline void ProgramUniform1dv(GLuint program1,GLint location1,GLsizei count1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORM1DVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1DVPROC_HPP>(_impl::_get_proc_address("glProgramUniform1dv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM1FPROC_HPP)(GLuint,GLint,GLfloat);
static inline void ProgramUniform1f(GLuint program1,GLint location1,GLfloat v01)
{
	static PFNGLPROGRAMUNIFORM1FPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1FPROC_HPP>(_impl::_get_proc_address("glProgramUniform1f","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,v01);
}
typedef void (*PFNGLPROGRAMUNIFORM1FVPROC_HPP)(GLuint,GLint,GLsizei,const GLfloat *);
static inline void ProgramUniform1fv(GLuint program1,GLint location1,GLsizei count1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORM1FVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1FVPROC_HPP>(_impl::_get_proc_address("glProgramUniform1fv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM1IPROC_HPP)(GLuint,GLint,GLint);
static inline void ProgramUniform1i(GLuint program1,GLint location1,GLint v01)
{
	static PFNGLPROGRAMUNIFORM1IPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1IPROC_HPP>(_impl::_get_proc_address("glProgramUniform1i","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,v01);
}
typedef void (*PFNGLPROGRAMUNIFORM1IVPROC_HPP)(GLuint,GLint,GLsizei,const GLint *);
static inline void ProgramUniform1iv(GLuint program1,GLint location1,GLsizei count1,const GLint * value1)
{
	static PFNGLPROGRAMUNIFORM1IVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1IVPROC_HPP>(_impl::_get_proc_address("glProgramUniform1iv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM1UIPROC_HPP)(GLuint,GLint,GLuint);
static inline void ProgramUniform1ui(GLuint program1,GLint location1,GLuint v01)
{
	static PFNGLPROGRAMUNIFORM1UIPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1UIPROC_HPP>(_impl::_get_proc_address("glProgramUniform1ui","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,v01);
}
typedef void (*PFNGLPROGRAMUNIFORM1UIVPROC_HPP)(GLuint,GLint,GLsizei,const GLuint *);
static inline void ProgramUniform1uiv(GLuint program1,GLint location1,GLsizei count1,const GLuint * value1)
{
	static PFNGLPROGRAMUNIFORM1UIVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1UIVPROC_HPP>(_impl::_get_proc_address("glProgramUniform1uiv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM2DPROC_HPP)(GLuint,GLint,GLdouble,GLdouble);
static inline void ProgramUniform2d(GLuint program1,GLint location1,GLdouble v01,GLdouble v11)
{
	static PFNGLPROGRAMUNIFORM2DPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2DPROC_HPP>(_impl::_get_proc_address("glProgramUniform2d","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,v01,v11);
}
typedef void (*PFNGLPROGRAMUNIFORM2DVPROC_HPP)(GLuint,GLint,GLsizei,const GLdouble *);
static inline void ProgramUniform2dv(GLuint program1,GLint location1,GLsizei count1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORM2DVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2DVPROC_HPP>(_impl::_get_proc_address("glProgramUniform2dv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM2FPROC_HPP)(GLuint,GLint,GLfloat,GLfloat);
static inline void ProgramUniform2f(GLuint program1,GLint location1,GLfloat v01,GLfloat v11)
{
	static PFNGLPROGRAMUNIFORM2FPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2FPROC_HPP>(_impl::_get_proc_address("glProgramUniform2f","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,v01,v11);
}
typedef void (*PFNGLPROGRAMUNIFORM2FVPROC_HPP)(GLuint,GLint,GLsizei,const GLfloat *);
static inline void ProgramUniform2fv(GLuint program1,GLint location1,GLsizei count1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORM2FVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2FVPROC_HPP>(_impl::_get_proc_address("glProgramUniform2fv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM2IPROC_HPP)(GLuint,GLint,GLint,GLint);
static inline void ProgramUniform2i(GLuint program1,GLint location1,GLint v01,GLint v11)
{
	static PFNGLPROGRAMUNIFORM2IPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2IPROC_HPP>(_impl::_get_proc_address("glProgramUniform2i","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,v01,v11);
}
typedef void (*PFNGLPROGRAMUNIFORM2IVPROC_HPP)(GLuint,GLint,GLsizei,const GLint *);
static inline void ProgramUniform2iv(GLuint program1,GLint location1,GLsizei count1,const GLint * value1)
{
	static PFNGLPROGRAMUNIFORM2IVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2IVPROC_HPP>(_impl::_get_proc_address("glProgramUniform2iv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM2UIPROC_HPP)(GLuint,GLint,GLuint,GLuint);
static inline void ProgramUniform2ui(GLuint program1,GLint location1,GLuint v01,GLuint v11)
{
	static PFNGLPROGRAMUNIFORM2UIPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2UIPROC_HPP>(_impl::_get_proc_address("glProgramUniform2ui","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,v01,v11);
}
typedef void (*PFNGLPROGRAMUNIFORM2UIVPROC_HPP)(GLuint,GLint,GLsizei,const GLuint *);
static inline void ProgramUniform2uiv(GLuint program1,GLint location1,GLsizei count1,const GLuint * value1)
{
	static PFNGLPROGRAMUNIFORM2UIVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2UIVPROC_HPP>(_impl::_get_proc_address("glProgramUniform2uiv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM3DPROC_HPP)(GLuint,GLint,GLdouble,GLdouble,GLdouble);
static inline void ProgramUniform3d(GLuint program1,GLint location1,GLdouble v01,GLdouble v11,GLdouble v21)
{
	static PFNGLPROGRAMUNIFORM3DPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3DPROC_HPP>(_impl::_get_proc_address("glProgramUniform3d","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,v01,v11,v21);
}
typedef void (*PFNGLPROGRAMUNIFORM3DVPROC_HPP)(GLuint,GLint,GLsizei,const GLdouble *);
static inline void ProgramUniform3dv(GLuint program1,GLint location1,GLsizei count1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORM3DVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3DVPROC_HPP>(_impl::_get_proc_address("glProgramUniform3dv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM3FPROC_HPP)(GLuint,GLint,GLfloat,GLfloat,GLfloat);
static inline void ProgramUniform3f(GLuint program1,GLint location1,GLfloat v01,GLfloat v11,GLfloat v21)
{
	static PFNGLPROGRAMUNIFORM3FPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3FPROC_HPP>(_impl::_get_proc_address("glProgramUniform3f","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,v01,v11,v21);
}
typedef void (*PFNGLPROGRAMUNIFORM3FVPROC_HPP)(GLuint,GLint,GLsizei,const GLfloat *);
static inline void ProgramUniform3fv(GLuint program1,GLint location1,GLsizei count1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORM3FVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3FVPROC_HPP>(_impl::_get_proc_address("glProgramUniform3fv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM3IPROC_HPP)(GLuint,GLint,GLint,GLint,GLint);
static inline void ProgramUniform3i(GLuint program1,GLint location1,GLint v01,GLint v11,GLint v21)
{
	static PFNGLPROGRAMUNIFORM3IPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3IPROC_HPP>(_impl::_get_proc_address("glProgramUniform3i","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,v01,v11,v21);
}
typedef void (*PFNGLPROGRAMUNIFORM3IVPROC_HPP)(GLuint,GLint,GLsizei,const GLint *);
static inline void ProgramUniform3iv(GLuint program1,GLint location1,GLsizei count1,const GLint * value1)
{
	static PFNGLPROGRAMUNIFORM3IVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3IVPROC_HPP>(_impl::_get_proc_address("glProgramUniform3iv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM3UIPROC_HPP)(GLuint,GLint,GLuint,GLuint,GLuint);
static inline void ProgramUniform3ui(GLuint program1,GLint location1,GLuint v01,GLuint v11,GLuint v21)
{
	static PFNGLPROGRAMUNIFORM3UIPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3UIPROC_HPP>(_impl::_get_proc_address("glProgramUniform3ui","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,v01,v11,v21);
}
typedef void (*PFNGLPROGRAMUNIFORM3UIVPROC_HPP)(GLuint,GLint,GLsizei,const GLuint *);
static inline void ProgramUniform3uiv(GLuint program1,GLint location1,GLsizei count1,const GLuint * value1)
{
	static PFNGLPROGRAMUNIFORM3UIVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3UIVPROC_HPP>(_impl::_get_proc_address("glProgramUniform3uiv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM4DPROC_HPP)(GLuint,GLint,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void ProgramUniform4d(GLuint program1,GLint location1,GLdouble v01,GLdouble v11,GLdouble v21,GLdouble v31)
{
	static PFNGLPROGRAMUNIFORM4DPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4DPROC_HPP>(_impl::_get_proc_address("glProgramUniform4d","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,v01,v11,v21,v31);
}
typedef void (*PFNGLPROGRAMUNIFORM4DVPROC_HPP)(GLuint,GLint,GLsizei,const GLdouble *);
static inline void ProgramUniform4dv(GLuint program1,GLint location1,GLsizei count1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORM4DVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4DVPROC_HPP>(_impl::_get_proc_address("glProgramUniform4dv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM4FPROC_HPP)(GLuint,GLint,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void ProgramUniform4f(GLuint program1,GLint location1,GLfloat v01,GLfloat v11,GLfloat v21,GLfloat v31)
{
	static PFNGLPROGRAMUNIFORM4FPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4FPROC_HPP>(_impl::_get_proc_address("glProgramUniform4f","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,v01,v11,v21,v31);
}
typedef void (*PFNGLPROGRAMUNIFORM4FVPROC_HPP)(GLuint,GLint,GLsizei,const GLfloat *);
static inline void ProgramUniform4fv(GLuint program1,GLint location1,GLsizei count1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORM4FVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4FVPROC_HPP>(_impl::_get_proc_address("glProgramUniform4fv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM4IPROC_HPP)(GLuint,GLint,GLint,GLint,GLint,GLint);
static inline void ProgramUniform4i(GLuint program1,GLint location1,GLint v01,GLint v11,GLint v21,GLint v31)
{
	static PFNGLPROGRAMUNIFORM4IPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4IPROC_HPP>(_impl::_get_proc_address("glProgramUniform4i","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,v01,v11,v21,v31);
}
typedef void (*PFNGLPROGRAMUNIFORM4IVPROC_HPP)(GLuint,GLint,GLsizei,const GLint *);
static inline void ProgramUniform4iv(GLuint program1,GLint location1,GLsizei count1,const GLint * value1)
{
	static PFNGLPROGRAMUNIFORM4IVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4IVPROC_HPP>(_impl::_get_proc_address("glProgramUniform4iv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM4UIPROC_HPP)(GLuint,GLint,GLuint,GLuint,GLuint,GLuint);
static inline void ProgramUniform4ui(GLuint program1,GLint location1,GLuint v01,GLuint v11,GLuint v21,GLuint v31)
{
	static PFNGLPROGRAMUNIFORM4UIPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4UIPROC_HPP>(_impl::_get_proc_address("glProgramUniform4ui","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,v01,v11,v21,v31);
}
typedef void (*PFNGLPROGRAMUNIFORM4UIVPROC_HPP)(GLuint,GLint,GLsizei,const GLuint *);
static inline void ProgramUniform4uiv(GLuint program1,GLint location1,GLsizei count1,const GLuint * value1)
{
	static PFNGLPROGRAMUNIFORM4UIVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4UIVPROC_HPP>(_impl::_get_proc_address("glProgramUniform4uiv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2DVPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLdouble *);
static inline void ProgramUniformMatrix2dv(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX2DVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2DVPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix2dv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2FVPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix2fv(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX2FVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2FVPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix2fv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLdouble *);
static inline void ProgramUniformMatrix2x3dv(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix2x3dv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix2x3fv(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix2x3fv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLdouble *);
static inline void ProgramUniformMatrix2x4dv(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix2x4dv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix2x4fv(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix2x4fv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3DVPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLdouble *);
static inline void ProgramUniformMatrix3dv(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX3DVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3DVPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix3dv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3FVPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix3fv(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX3FVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3FVPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix3fv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLdouble *);
static inline void ProgramUniformMatrix3x2dv(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix3x2dv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix3x2fv(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix3x2fv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLdouble *);
static inline void ProgramUniformMatrix3x4dv(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix3x4dv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix3x4fv(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix3x4fv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4DVPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLdouble *);
static inline void ProgramUniformMatrix4dv(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX4DVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4DVPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix4dv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4FVPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix4fv(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX4FVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4FVPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix4fv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLdouble *);
static inline void ProgramUniformMatrix4x2dv(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix4x2dv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix4x2fv(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix4x2fv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLdouble *);
static inline void ProgramUniformMatrix4x3dv(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix4x3dv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix4x3fv(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix4x3fv","GL_ARB_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLUSEPROGRAMSTAGESPROC_HPP)(GLuint,GLbitfield,GLuint);
static inline void UseProgramStages(GLuint pipeline1,GLbitfield stages1,GLuint program1)
{
	static PFNGLUSEPROGRAMSTAGESPROC_HPP fn=reinterpret_cast<PFNGLUSEPROGRAMSTAGESPROC_HPP>(_impl::_get_proc_address("glUseProgramStages","GL_ARB_separate_shader_objects"));
	 fn(pipeline1,stages1,program1);
}
typedef void (*PFNGLVALIDATEPROGRAMPIPELINEPROC_HPP)(GLuint);
static inline void ValidateProgramPipeline(GLuint pipeline1)
{
	static PFNGLVALIDATEPROGRAMPIPELINEPROC_HPP fn=reinterpret_cast<PFNGLVALIDATEPROGRAMPIPELINEPROC_HPP>(_impl::_get_proc_address("glValidateProgramPipeline","GL_ARB_separate_shader_objects"));
	 fn(pipeline1);
}}
#endif

#ifndef GL_ARB_shader_atomic_counters
#define GL_ARB_shader_atomic_counters
#ifndef GL_ATOMIC_COUNTER_BUFFER
#define GL_ATOMIC_COUNTER_BUFFER 0x92C0
#endif //GL_ATOMIC_COUNTER_BUFFER
#ifndef GL_ATOMIC_COUNTER_BUFFER_BINDING
#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1
#endif //GL_ATOMIC_COUNTER_BUFFER_BINDING
#ifndef GL_ATOMIC_COUNTER_BUFFER_START
#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2
#endif //GL_ATOMIC_COUNTER_BUFFER_START
#ifndef GL_ATOMIC_COUNTER_BUFFER_SIZE
#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3
#endif //GL_ATOMIC_COUNTER_BUFFER_SIZE
#ifndef GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE
#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4
#endif //GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE
#ifndef GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS
#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5
#endif //GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS
#ifndef GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES
#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6
#endif //GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES
#ifndef GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER
#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7
#endif //GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER
#ifndef GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER
#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8
#endif //GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER
#ifndef GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER
#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9
#endif //GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER
#ifndef GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER
#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA
#endif //GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER
#ifndef GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER
#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB
#endif //GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER
#ifndef GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS
#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC
#endif //GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS
#ifndef GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS
#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD
#endif //GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS
#ifndef GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS
#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE
#endif //GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS
#ifndef GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS
#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF
#endif //GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS
#ifndef GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS
#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0
#endif //GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS
#ifndef GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS
#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1
#endif //GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS
#ifndef GL_MAX_VERTEX_ATOMIC_COUNTERS
#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2
#endif //GL_MAX_VERTEX_ATOMIC_COUNTERS
#ifndef GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS
#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3
#endif //GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS
#ifndef GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS
#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4
#endif //GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS
#ifndef GL_MAX_GEOMETRY_ATOMIC_COUNTERS
#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5
#endif //GL_MAX_GEOMETRY_ATOMIC_COUNTERS
#ifndef GL_MAX_FRAGMENT_ATOMIC_COUNTERS
#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6
#endif //GL_MAX_FRAGMENT_ATOMIC_COUNTERS
#ifndef GL_MAX_COMBINED_ATOMIC_COUNTERS
#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7
#endif //GL_MAX_COMBINED_ATOMIC_COUNTERS
#ifndef GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE
#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8
#endif //GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE
#ifndef GL_ACTIVE_ATOMIC_COUNTER_BUFFERS
#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9
#endif //GL_ACTIVE_ATOMIC_COUNTER_BUFFERS
#ifndef GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX
#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA
#endif //GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX
#ifndef GL_UNSIGNED_INT_ATOMIC_COUNTER
#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB
#endif //GL_UNSIGNED_INT_ATOMIC_COUNTER
#ifndef GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS
#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC
#endif //GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC_HPP)(GLuint,GLuint,GLenum,GLint *);
static inline void GetActiveAtomicCounterBufferiv(GLuint program1,GLuint bufferIndex1,GLenum pname1,GLint * params1)
{
	static PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC_HPP fn=reinterpret_cast<PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC_HPP>(_impl::_get_proc_address("glGetActiveAtomicCounterBufferiv","GL_ARB_shader_atomic_counters"));
	 fn(program1,bufferIndex1,pname1,params1);
}}
#endif

#ifndef GL_ARB_shader_bit_encoding
#define GL_ARB_shader_bit_encoding
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_shader_draw_parameters
#define GL_ARB_shader_draw_parameters
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_shader_group_vote
#define GL_ARB_shader_group_vote
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_shader_image_load_store
#define GL_ARB_shader_image_load_store
#ifndef GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT
#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001
#endif //GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT
#ifndef GL_ELEMENT_ARRAY_BARRIER_BIT
#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002
#endif //GL_ELEMENT_ARRAY_BARRIER_BIT
#ifndef GL_UNIFORM_BARRIER_BIT
#define GL_UNIFORM_BARRIER_BIT 0x00000004
#endif //GL_UNIFORM_BARRIER_BIT
#ifndef GL_TEXTURE_FETCH_BARRIER_BIT
#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008
#endif //GL_TEXTURE_FETCH_BARRIER_BIT
#ifndef GL_SHADER_IMAGE_ACCESS_BARRIER_BIT
#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020
#endif //GL_SHADER_IMAGE_ACCESS_BARRIER_BIT
#ifndef GL_COMMAND_BARRIER_BIT
#define GL_COMMAND_BARRIER_BIT 0x00000040
#endif //GL_COMMAND_BARRIER_BIT
#ifndef GL_PIXEL_BUFFER_BARRIER_BIT
#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080
#endif //GL_PIXEL_BUFFER_BARRIER_BIT
#ifndef GL_TEXTURE_UPDATE_BARRIER_BIT
#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100
#endif //GL_TEXTURE_UPDATE_BARRIER_BIT
#ifndef GL_BUFFER_UPDATE_BARRIER_BIT
#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200
#endif //GL_BUFFER_UPDATE_BARRIER_BIT
#ifndef GL_FRAMEBUFFER_BARRIER_BIT
#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400
#endif //GL_FRAMEBUFFER_BARRIER_BIT
#ifndef GL_TRANSFORM_FEEDBACK_BARRIER_BIT
#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800
#endif //GL_TRANSFORM_FEEDBACK_BARRIER_BIT
#ifndef GL_ATOMIC_COUNTER_BARRIER_BIT
#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000
#endif //GL_ATOMIC_COUNTER_BARRIER_BIT
#ifndef GL_MAX_IMAGE_UNITS
#define GL_MAX_IMAGE_UNITS 0x8F38
#endif //GL_MAX_IMAGE_UNITS
#ifndef GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS
#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39
#endif //GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS
#ifndef GL_IMAGE_BINDING_NAME
#define GL_IMAGE_BINDING_NAME 0x8F3A
#endif //GL_IMAGE_BINDING_NAME
#ifndef GL_IMAGE_BINDING_LEVEL
#define GL_IMAGE_BINDING_LEVEL 0x8F3B
#endif //GL_IMAGE_BINDING_LEVEL
#ifndef GL_IMAGE_BINDING_LAYERED
#define GL_IMAGE_BINDING_LAYERED 0x8F3C
#endif //GL_IMAGE_BINDING_LAYERED
#ifndef GL_IMAGE_BINDING_LAYER
#define GL_IMAGE_BINDING_LAYER 0x8F3D
#endif //GL_IMAGE_BINDING_LAYER
#ifndef GL_IMAGE_BINDING_ACCESS
#define GL_IMAGE_BINDING_ACCESS 0x8F3E
#endif //GL_IMAGE_BINDING_ACCESS
#ifndef GL_IMAGE_1D
#define GL_IMAGE_1D 0x904C
#endif //GL_IMAGE_1D
#ifndef GL_IMAGE_2D
#define GL_IMAGE_2D 0x904D
#endif //GL_IMAGE_2D
#ifndef GL_IMAGE_3D
#define GL_IMAGE_3D 0x904E
#endif //GL_IMAGE_3D
#ifndef GL_IMAGE_2D_RECT
#define GL_IMAGE_2D_RECT 0x904F
#endif //GL_IMAGE_2D_RECT
#ifndef GL_IMAGE_CUBE
#define GL_IMAGE_CUBE 0x9050
#endif //GL_IMAGE_CUBE
#ifndef GL_IMAGE_BUFFER
#define GL_IMAGE_BUFFER 0x9051
#endif //GL_IMAGE_BUFFER
#ifndef GL_IMAGE_1D_ARRAY
#define GL_IMAGE_1D_ARRAY 0x9052
#endif //GL_IMAGE_1D_ARRAY
#ifndef GL_IMAGE_2D_ARRAY
#define GL_IMAGE_2D_ARRAY 0x9053
#endif //GL_IMAGE_2D_ARRAY
#ifndef GL_IMAGE_CUBE_MAP_ARRAY
#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054
#endif //GL_IMAGE_CUBE_MAP_ARRAY
#ifndef GL_IMAGE_2D_MULTISAMPLE
#define GL_IMAGE_2D_MULTISAMPLE 0x9055
#endif //GL_IMAGE_2D_MULTISAMPLE
#ifndef GL_IMAGE_2D_MULTISAMPLE_ARRAY
#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056
#endif //GL_IMAGE_2D_MULTISAMPLE_ARRAY
#ifndef GL_INT_IMAGE_1D
#define GL_INT_IMAGE_1D 0x9057
#endif //GL_INT_IMAGE_1D
#ifndef GL_INT_IMAGE_2D
#define GL_INT_IMAGE_2D 0x9058
#endif //GL_INT_IMAGE_2D
#ifndef GL_INT_IMAGE_3D
#define GL_INT_IMAGE_3D 0x9059
#endif //GL_INT_IMAGE_3D
#ifndef GL_INT_IMAGE_2D_RECT
#define GL_INT_IMAGE_2D_RECT 0x905A
#endif //GL_INT_IMAGE_2D_RECT
#ifndef GL_INT_IMAGE_CUBE
#define GL_INT_IMAGE_CUBE 0x905B
#endif //GL_INT_IMAGE_CUBE
#ifndef GL_INT_IMAGE_BUFFER
#define GL_INT_IMAGE_BUFFER 0x905C
#endif //GL_INT_IMAGE_BUFFER
#ifndef GL_INT_IMAGE_1D_ARRAY
#define GL_INT_IMAGE_1D_ARRAY 0x905D
#endif //GL_INT_IMAGE_1D_ARRAY
#ifndef GL_INT_IMAGE_2D_ARRAY
#define GL_INT_IMAGE_2D_ARRAY 0x905E
#endif //GL_INT_IMAGE_2D_ARRAY
#ifndef GL_INT_IMAGE_CUBE_MAP_ARRAY
#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F
#endif //GL_INT_IMAGE_CUBE_MAP_ARRAY
#ifndef GL_INT_IMAGE_2D_MULTISAMPLE
#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060
#endif //GL_INT_IMAGE_2D_MULTISAMPLE
#ifndef GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY
#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061
#endif //GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY
#ifndef GL_UNSIGNED_INT_IMAGE_1D
#define GL_UNSIGNED_INT_IMAGE_1D 0x9062
#endif //GL_UNSIGNED_INT_IMAGE_1D
#ifndef GL_UNSIGNED_INT_IMAGE_2D
#define GL_UNSIGNED_INT_IMAGE_2D 0x9063
#endif //GL_UNSIGNED_INT_IMAGE_2D
#ifndef GL_UNSIGNED_INT_IMAGE_3D
#define GL_UNSIGNED_INT_IMAGE_3D 0x9064
#endif //GL_UNSIGNED_INT_IMAGE_3D
#ifndef GL_UNSIGNED_INT_IMAGE_2D_RECT
#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065
#endif //GL_UNSIGNED_INT_IMAGE_2D_RECT
#ifndef GL_UNSIGNED_INT_IMAGE_CUBE
#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066
#endif //GL_UNSIGNED_INT_IMAGE_CUBE
#ifndef GL_UNSIGNED_INT_IMAGE_BUFFER
#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067
#endif //GL_UNSIGNED_INT_IMAGE_BUFFER
#ifndef GL_UNSIGNED_INT_IMAGE_1D_ARRAY
#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068
#endif //GL_UNSIGNED_INT_IMAGE_1D_ARRAY
#ifndef GL_UNSIGNED_INT_IMAGE_2D_ARRAY
#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069
#endif //GL_UNSIGNED_INT_IMAGE_2D_ARRAY
#ifndef GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY
#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A
#endif //GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY
#ifndef GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE
#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B
#endif //GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE
#ifndef GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY
#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C
#endif //GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY
#ifndef GL_MAX_IMAGE_SAMPLES
#define GL_MAX_IMAGE_SAMPLES 0x906D
#endif //GL_MAX_IMAGE_SAMPLES
#ifndef GL_IMAGE_BINDING_FORMAT
#define GL_IMAGE_BINDING_FORMAT 0x906E
#endif //GL_IMAGE_BINDING_FORMAT
#ifndef GL_IMAGE_FORMAT_COMPATIBILITY_TYPE
#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7
#endif //GL_IMAGE_FORMAT_COMPATIBILITY_TYPE
#ifndef GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE
#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8
#endif //GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE
#ifndef GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS
#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9
#endif //GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS
#ifndef GL_MAX_VERTEX_IMAGE_UNIFORMS
#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA
#endif //GL_MAX_VERTEX_IMAGE_UNIFORMS
#ifndef GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS
#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB
#endif //GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS
#ifndef GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS
#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC
#endif //GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS
#ifndef GL_MAX_GEOMETRY_IMAGE_UNIFORMS
#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD
#endif //GL_MAX_GEOMETRY_IMAGE_UNIFORMS
#ifndef GL_MAX_FRAGMENT_IMAGE_UNIFORMS
#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE
#endif //GL_MAX_FRAGMENT_IMAGE_UNIFORMS
#ifndef GL_MAX_COMBINED_IMAGE_UNIFORMS
#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF
#endif //GL_MAX_COMBINED_IMAGE_UNIFORMS
#ifndef GL_ALL_BARRIER_BITS
#define GL_ALL_BARRIER_BITS 0xFFFFFFFF
#endif //GL_ALL_BARRIER_BITS
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDIMAGETEXTUREPROC_HPP)(GLuint,GLuint,GLint,GLboolean,GLint,GLenum,GLenum);
static inline void BindImageTexture(GLuint unit1,GLuint texture1,GLint level1,GLboolean layered1,GLint layer1,GLenum access1,GLenum format1)
{
	static PFNGLBINDIMAGETEXTUREPROC_HPP fn=reinterpret_cast<PFNGLBINDIMAGETEXTUREPROC_HPP>(_impl::_get_proc_address("glBindImageTexture","GL_ARB_shader_image_load_store"));
	 fn(unit1,texture1,level1,layered1,layer1,access1,format1);
}
typedef void (*PFNGLMEMORYBARRIERPROC_HPP)(GLbitfield);
static inline void MemoryBarrier(GLbitfield barriers1)
{
	static PFNGLMEMORYBARRIERPROC_HPP fn=reinterpret_cast<PFNGLMEMORYBARRIERPROC_HPP>(_impl::_get_proc_address("glMemoryBarrier","GL_ARB_shader_image_load_store"));
	 fn(barriers1);
}}
#endif

#ifndef GL_ARB_shader_image_size
#define GL_ARB_shader_image_size
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_shader_objects
#define GL_ARB_shader_objects
#ifndef GL_PROGRAM_OBJECT_ARB
#define GL_PROGRAM_OBJECT_ARB 0x8B40
#endif //GL_PROGRAM_OBJECT_ARB
#ifndef GL_SHADER_OBJECT_ARB
#define GL_SHADER_OBJECT_ARB 0x8B48
#endif //GL_SHADER_OBJECT_ARB
#ifndef GL_OBJECT_TYPE_ARB
#define GL_OBJECT_TYPE_ARB 0x8B4E
#endif //GL_OBJECT_TYPE_ARB
#ifndef GL_OBJECT_SUBTYPE_ARB
#define GL_OBJECT_SUBTYPE_ARB 0x8B4F
#endif //GL_OBJECT_SUBTYPE_ARB
#ifndef GL_FLOAT_VEC2_ARB
#define GL_FLOAT_VEC2_ARB 0x8B50
#endif //GL_FLOAT_VEC2_ARB
#ifndef GL_FLOAT_VEC3_ARB
#define GL_FLOAT_VEC3_ARB 0x8B51
#endif //GL_FLOAT_VEC3_ARB
#ifndef GL_FLOAT_VEC4_ARB
#define GL_FLOAT_VEC4_ARB 0x8B52
#endif //GL_FLOAT_VEC4_ARB
#ifndef GL_INT_VEC2_ARB
#define GL_INT_VEC2_ARB 0x8B53
#endif //GL_INT_VEC2_ARB
#ifndef GL_INT_VEC3_ARB
#define GL_INT_VEC3_ARB 0x8B54
#endif //GL_INT_VEC3_ARB
#ifndef GL_INT_VEC4_ARB
#define GL_INT_VEC4_ARB 0x8B55
#endif //GL_INT_VEC4_ARB
#ifndef GL_BOOL_ARB
#define GL_BOOL_ARB 0x8B56
#endif //GL_BOOL_ARB
#ifndef GL_BOOL_VEC2_ARB
#define GL_BOOL_VEC2_ARB 0x8B57
#endif //GL_BOOL_VEC2_ARB
#ifndef GL_BOOL_VEC3_ARB
#define GL_BOOL_VEC3_ARB 0x8B58
#endif //GL_BOOL_VEC3_ARB
#ifndef GL_BOOL_VEC4_ARB
#define GL_BOOL_VEC4_ARB 0x8B59
#endif //GL_BOOL_VEC4_ARB
#ifndef GL_FLOAT_MAT2_ARB
#define GL_FLOAT_MAT2_ARB 0x8B5A
#endif //GL_FLOAT_MAT2_ARB
#ifndef GL_FLOAT_MAT3_ARB
#define GL_FLOAT_MAT3_ARB 0x8B5B
#endif //GL_FLOAT_MAT3_ARB
#ifndef GL_FLOAT_MAT4_ARB
#define GL_FLOAT_MAT4_ARB 0x8B5C
#endif //GL_FLOAT_MAT4_ARB
#ifndef GL_SAMPLER_1D_ARB
#define GL_SAMPLER_1D_ARB 0x8B5D
#endif //GL_SAMPLER_1D_ARB
#ifndef GL_SAMPLER_2D_ARB
#define GL_SAMPLER_2D_ARB 0x8B5E
#endif //GL_SAMPLER_2D_ARB
#ifndef GL_SAMPLER_3D_ARB
#define GL_SAMPLER_3D_ARB 0x8B5F
#endif //GL_SAMPLER_3D_ARB
#ifndef GL_SAMPLER_CUBE_ARB
#define GL_SAMPLER_CUBE_ARB 0x8B60
#endif //GL_SAMPLER_CUBE_ARB
#ifndef GL_SAMPLER_1D_SHADOW_ARB
#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61
#endif //GL_SAMPLER_1D_SHADOW_ARB
#ifndef GL_SAMPLER_2D_SHADOW_ARB
#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62
#endif //GL_SAMPLER_2D_SHADOW_ARB
#ifndef GL_SAMPLER_2D_RECT_ARB
#define GL_SAMPLER_2D_RECT_ARB 0x8B63
#endif //GL_SAMPLER_2D_RECT_ARB
#ifndef GL_SAMPLER_2D_RECT_SHADOW_ARB
#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64
#endif //GL_SAMPLER_2D_RECT_SHADOW_ARB
#ifndef GL_OBJECT_DELETE_STATUS_ARB
#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80
#endif //GL_OBJECT_DELETE_STATUS_ARB
#ifndef GL_OBJECT_COMPILE_STATUS_ARB
#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81
#endif //GL_OBJECT_COMPILE_STATUS_ARB
#ifndef GL_OBJECT_LINK_STATUS_ARB
#define GL_OBJECT_LINK_STATUS_ARB 0x8B82
#endif //GL_OBJECT_LINK_STATUS_ARB
#ifndef GL_OBJECT_VALIDATE_STATUS_ARB
#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83
#endif //GL_OBJECT_VALIDATE_STATUS_ARB
#ifndef GL_OBJECT_INFO_LOG_LENGTH_ARB
#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84
#endif //GL_OBJECT_INFO_LOG_LENGTH_ARB
#ifndef GL_OBJECT_ATTACHED_OBJECTS_ARB
#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85
#endif //GL_OBJECT_ATTACHED_OBJECTS_ARB
#ifndef GL_OBJECT_ACTIVE_UNIFORMS_ARB
#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86
#endif //GL_OBJECT_ACTIVE_UNIFORMS_ARB
#ifndef GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB
#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87
#endif //GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB
#ifndef GL_OBJECT_SHADER_SOURCE_LENGTH_ARB
#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88
#endif //GL_OBJECT_SHADER_SOURCE_LENGTH_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLATTACHOBJECTARBPROC_HPP)(GLhandleARB,GLhandleARB);
static inline void AttachObjectARB(GLhandleARB containerObj1,GLhandleARB obj1)
{
	static PFNGLATTACHOBJECTARBPROC_HPP fn=reinterpret_cast<PFNGLATTACHOBJECTARBPROC_HPP>(_impl::_get_proc_address("glAttachObjectARB","GL_ARB_shader_objects"));
	 fn(containerObj1,obj1);
}
typedef void (*PFNGLCOMPILESHADERARBPROC_HPP)(GLhandleARB);
static inline void CompileShaderARB(GLhandleARB shaderObj1)
{
	static PFNGLCOMPILESHADERARBPROC_HPP fn=reinterpret_cast<PFNGLCOMPILESHADERARBPROC_HPP>(_impl::_get_proc_address("glCompileShaderARB","GL_ARB_shader_objects"));
	 fn(shaderObj1);
}
typedef GLhandleARB (*PFNGLCREATEPROGRAMOBJECTARBPROC_HPP)();
static inline GLhandleARB CreateProgramObjectARB()
{
	static PFNGLCREATEPROGRAMOBJECTARBPROC_HPP fn=reinterpret_cast<PFNGLCREATEPROGRAMOBJECTARBPROC_HPP>(_impl::_get_proc_address("glCreateProgramObjectARB","GL_ARB_shader_objects"));
	return fn();
}
typedef GLhandleARB (*PFNGLCREATESHADEROBJECTARBPROC_HPP)(GLenum);
static inline GLhandleARB CreateShaderObjectARB(GLenum shaderType1)
{
	static PFNGLCREATESHADEROBJECTARBPROC_HPP fn=reinterpret_cast<PFNGLCREATESHADEROBJECTARBPROC_HPP>(_impl::_get_proc_address("glCreateShaderObjectARB","GL_ARB_shader_objects"));
	return fn(shaderType1);
}
typedef void (*PFNGLDELETEOBJECTARBPROC_HPP)(GLhandleARB);
static inline void DeleteObjectARB(GLhandleARB obj1)
{
	static PFNGLDELETEOBJECTARBPROC_HPP fn=reinterpret_cast<PFNGLDELETEOBJECTARBPROC_HPP>(_impl::_get_proc_address("glDeleteObjectARB","GL_ARB_shader_objects"));
	 fn(obj1);
}
typedef void (*PFNGLDETACHOBJECTARBPROC_HPP)(GLhandleARB,GLhandleARB);
static inline void DetachObjectARB(GLhandleARB containerObj1,GLhandleARB attachedObj1)
{
	static PFNGLDETACHOBJECTARBPROC_HPP fn=reinterpret_cast<PFNGLDETACHOBJECTARBPROC_HPP>(_impl::_get_proc_address("glDetachObjectARB","GL_ARB_shader_objects"));
	 fn(containerObj1,attachedObj1);
}
typedef void (*PFNGLGETACTIVEUNIFORMARBPROC_HPP)(GLhandleARB,GLuint,GLsizei,GLsizei *,GLint *,GLenum *,GLcharARB *);
static inline void GetActiveUniformARB(GLhandleARB programObj1,GLuint index1,GLsizei maxLength1,GLsizei * length1,GLint * size1,GLenum * type1,GLcharARB * name1)
{
	static PFNGLGETACTIVEUNIFORMARBPROC_HPP fn=reinterpret_cast<PFNGLGETACTIVEUNIFORMARBPROC_HPP>(_impl::_get_proc_address("glGetActiveUniformARB","GL_ARB_shader_objects"));
	 fn(programObj1,index1,maxLength1,length1,size1,type1,name1);
}
typedef void (*PFNGLGETATTACHEDOBJECTSARBPROC_HPP)(GLhandleARB,GLsizei,GLsizei *,GLhandleARB *);
static inline void GetAttachedObjectsARB(GLhandleARB containerObj1,GLsizei maxCount1,GLsizei * count1,GLhandleARB * obj1)
{
	static PFNGLGETATTACHEDOBJECTSARBPROC_HPP fn=reinterpret_cast<PFNGLGETATTACHEDOBJECTSARBPROC_HPP>(_impl::_get_proc_address("glGetAttachedObjectsARB","GL_ARB_shader_objects"));
	 fn(containerObj1,maxCount1,count1,obj1);
}
typedef GLhandleARB (*PFNGLGETHANDLEARBPROC_HPP)(GLenum);
static inline GLhandleARB GetHandleARB(GLenum pname1)
{
	static PFNGLGETHANDLEARBPROC_HPP fn=reinterpret_cast<PFNGLGETHANDLEARBPROC_HPP>(_impl::_get_proc_address("glGetHandleARB","GL_ARB_shader_objects"));
	return fn(pname1);
}
typedef void (*PFNGLGETINFOLOGARBPROC_HPP)(GLhandleARB,GLsizei,GLsizei *,GLcharARB *);
static inline void GetInfoLogARB(GLhandleARB obj1,GLsizei maxLength1,GLsizei * length1,GLcharARB * infoLog1)
{
	static PFNGLGETINFOLOGARBPROC_HPP fn=reinterpret_cast<PFNGLGETINFOLOGARBPROC_HPP>(_impl::_get_proc_address("glGetInfoLogARB","GL_ARB_shader_objects"));
	 fn(obj1,maxLength1,length1,infoLog1);
}
typedef void (*PFNGLGETOBJECTPARAMETERFVARBPROC_HPP)(GLhandleARB,GLenum,GLfloat *);
static inline void GetObjectParameterfvARB(GLhandleARB obj1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETOBJECTPARAMETERFVARBPROC_HPP fn=reinterpret_cast<PFNGLGETOBJECTPARAMETERFVARBPROC_HPP>(_impl::_get_proc_address("glGetObjectParameterfvARB","GL_ARB_shader_objects"));
	 fn(obj1,pname1,params1);
}
typedef void (*PFNGLGETOBJECTPARAMETERIVARBPROC_HPP)(GLhandleARB,GLenum,GLint *);
static inline void GetObjectParameterivARB(GLhandleARB obj1,GLenum pname1,GLint * params1)
{
	static PFNGLGETOBJECTPARAMETERIVARBPROC_HPP fn=reinterpret_cast<PFNGLGETOBJECTPARAMETERIVARBPROC_HPP>(_impl::_get_proc_address("glGetObjectParameterivARB","GL_ARB_shader_objects"));
	 fn(obj1,pname1,params1);
}
typedef void (*PFNGLGETSHADERSOURCEARBPROC_HPP)(GLhandleARB,GLsizei,GLsizei *,GLcharARB *);
static inline void GetShaderSourceARB(GLhandleARB obj1,GLsizei maxLength1,GLsizei * length1,GLcharARB * source1)
{
	static PFNGLGETSHADERSOURCEARBPROC_HPP fn=reinterpret_cast<PFNGLGETSHADERSOURCEARBPROC_HPP>(_impl::_get_proc_address("glGetShaderSourceARB","GL_ARB_shader_objects"));
	 fn(obj1,maxLength1,length1,source1);
}
typedef GLint (*PFNGLGETUNIFORMLOCATIONARBPROC_HPP)(GLhandleARB,const GLcharARB *);
static inline GLint GetUniformLocationARB(GLhandleARB programObj1,const GLcharARB * name1)
{
	static PFNGLGETUNIFORMLOCATIONARBPROC_HPP fn=reinterpret_cast<PFNGLGETUNIFORMLOCATIONARBPROC_HPP>(_impl::_get_proc_address("glGetUniformLocationARB","GL_ARB_shader_objects"));
	return fn(programObj1,name1);
}
typedef void (*PFNGLGETUNIFORMFVARBPROC_HPP)(GLhandleARB,GLint,GLfloat *);
static inline void GetUniformfvARB(GLhandleARB programObj1,GLint location1,GLfloat * params1)
{
	static PFNGLGETUNIFORMFVARBPROC_HPP fn=reinterpret_cast<PFNGLGETUNIFORMFVARBPROC_HPP>(_impl::_get_proc_address("glGetUniformfvARB","GL_ARB_shader_objects"));
	 fn(programObj1,location1,params1);
}
typedef void (*PFNGLGETUNIFORMIVARBPROC_HPP)(GLhandleARB,GLint,GLint *);
static inline void GetUniformivARB(GLhandleARB programObj1,GLint location1,GLint * params1)
{
	static PFNGLGETUNIFORMIVARBPROC_HPP fn=reinterpret_cast<PFNGLGETUNIFORMIVARBPROC_HPP>(_impl::_get_proc_address("glGetUniformivARB","GL_ARB_shader_objects"));
	 fn(programObj1,location1,params1);
}
typedef void (*PFNGLLINKPROGRAMARBPROC_HPP)(GLhandleARB);
static inline void LinkProgramARB(GLhandleARB programObj1)
{
	static PFNGLLINKPROGRAMARBPROC_HPP fn=reinterpret_cast<PFNGLLINKPROGRAMARBPROC_HPP>(_impl::_get_proc_address("glLinkProgramARB","GL_ARB_shader_objects"));
	 fn(programObj1);
}
typedef void (*PFNGLSHADERSOURCEARBPROC_HPP)(GLhandleARB,GLsizei,const GLcharARB **,const GLint *);
static inline void ShaderSourceARB(GLhandleARB shaderObj1,GLsizei count1,const GLcharARB ** string1,const GLint * length1)
{
	static PFNGLSHADERSOURCEARBPROC_HPP fn=reinterpret_cast<PFNGLSHADERSOURCEARBPROC_HPP>(_impl::_get_proc_address("glShaderSourceARB","GL_ARB_shader_objects"));
	 fn(shaderObj1,count1,string1,length1);
}
typedef void (*PFNGLUNIFORM1FARBPROC_HPP)(GLint,GLfloat);
static inline void Uniform1fARB(GLint location1,GLfloat v01)
{
	static PFNGLUNIFORM1FARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM1FARBPROC_HPP>(_impl::_get_proc_address("glUniform1fARB","GL_ARB_shader_objects"));
	 fn(location1,v01);
}
typedef void (*PFNGLUNIFORM1FVARBPROC_HPP)(GLint,GLsizei,const GLfloat *);
static inline void Uniform1fvARB(GLint location1,GLsizei count1,const GLfloat * value1)
{
	static PFNGLUNIFORM1FVARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM1FVARBPROC_HPP>(_impl::_get_proc_address("glUniform1fvARB","GL_ARB_shader_objects"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM1IARBPROC_HPP)(GLint,GLint);
static inline void Uniform1iARB(GLint location1,GLint v01)
{
	static PFNGLUNIFORM1IARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM1IARBPROC_HPP>(_impl::_get_proc_address("glUniform1iARB","GL_ARB_shader_objects"));
	 fn(location1,v01);
}
typedef void (*PFNGLUNIFORM1IVARBPROC_HPP)(GLint,GLsizei,const GLint *);
static inline void Uniform1ivARB(GLint location1,GLsizei count1,const GLint * value1)
{
	static PFNGLUNIFORM1IVARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM1IVARBPROC_HPP>(_impl::_get_proc_address("glUniform1ivARB","GL_ARB_shader_objects"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM2FARBPROC_HPP)(GLint,GLfloat,GLfloat);
static inline void Uniform2fARB(GLint location1,GLfloat v01,GLfloat v11)
{
	static PFNGLUNIFORM2FARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM2FARBPROC_HPP>(_impl::_get_proc_address("glUniform2fARB","GL_ARB_shader_objects"));
	 fn(location1,v01,v11);
}
typedef void (*PFNGLUNIFORM2FVARBPROC_HPP)(GLint,GLsizei,const GLfloat *);
static inline void Uniform2fvARB(GLint location1,GLsizei count1,const GLfloat * value1)
{
	static PFNGLUNIFORM2FVARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM2FVARBPROC_HPP>(_impl::_get_proc_address("glUniform2fvARB","GL_ARB_shader_objects"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM2IARBPROC_HPP)(GLint,GLint,GLint);
static inline void Uniform2iARB(GLint location1,GLint v01,GLint v11)
{
	static PFNGLUNIFORM2IARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM2IARBPROC_HPP>(_impl::_get_proc_address("glUniform2iARB","GL_ARB_shader_objects"));
	 fn(location1,v01,v11);
}
typedef void (*PFNGLUNIFORM2IVARBPROC_HPP)(GLint,GLsizei,const GLint *);
static inline void Uniform2ivARB(GLint location1,GLsizei count1,const GLint * value1)
{
	static PFNGLUNIFORM2IVARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM2IVARBPROC_HPP>(_impl::_get_proc_address("glUniform2ivARB","GL_ARB_shader_objects"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM3FARBPROC_HPP)(GLint,GLfloat,GLfloat,GLfloat);
static inline void Uniform3fARB(GLint location1,GLfloat v01,GLfloat v11,GLfloat v21)
{
	static PFNGLUNIFORM3FARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM3FARBPROC_HPP>(_impl::_get_proc_address("glUniform3fARB","GL_ARB_shader_objects"));
	 fn(location1,v01,v11,v21);
}
typedef void (*PFNGLUNIFORM3FVARBPROC_HPP)(GLint,GLsizei,const GLfloat *);
static inline void Uniform3fvARB(GLint location1,GLsizei count1,const GLfloat * value1)
{
	static PFNGLUNIFORM3FVARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM3FVARBPROC_HPP>(_impl::_get_proc_address("glUniform3fvARB","GL_ARB_shader_objects"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM3IARBPROC_HPP)(GLint,GLint,GLint,GLint);
static inline void Uniform3iARB(GLint location1,GLint v01,GLint v11,GLint v21)
{
	static PFNGLUNIFORM3IARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM3IARBPROC_HPP>(_impl::_get_proc_address("glUniform3iARB","GL_ARB_shader_objects"));
	 fn(location1,v01,v11,v21);
}
typedef void (*PFNGLUNIFORM3IVARBPROC_HPP)(GLint,GLsizei,const GLint *);
static inline void Uniform3ivARB(GLint location1,GLsizei count1,const GLint * value1)
{
	static PFNGLUNIFORM3IVARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM3IVARBPROC_HPP>(_impl::_get_proc_address("glUniform3ivARB","GL_ARB_shader_objects"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM4FARBPROC_HPP)(GLint,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void Uniform4fARB(GLint location1,GLfloat v01,GLfloat v11,GLfloat v21,GLfloat v31)
{
	static PFNGLUNIFORM4FARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM4FARBPROC_HPP>(_impl::_get_proc_address("glUniform4fARB","GL_ARB_shader_objects"));
	 fn(location1,v01,v11,v21,v31);
}
typedef void (*PFNGLUNIFORM4FVARBPROC_HPP)(GLint,GLsizei,const GLfloat *);
static inline void Uniform4fvARB(GLint location1,GLsizei count1,const GLfloat * value1)
{
	static PFNGLUNIFORM4FVARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM4FVARBPROC_HPP>(_impl::_get_proc_address("glUniform4fvARB","GL_ARB_shader_objects"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM4IARBPROC_HPP)(GLint,GLint,GLint,GLint,GLint);
static inline void Uniform4iARB(GLint location1,GLint v01,GLint v11,GLint v21,GLint v31)
{
	static PFNGLUNIFORM4IARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM4IARBPROC_HPP>(_impl::_get_proc_address("glUniform4iARB","GL_ARB_shader_objects"));
	 fn(location1,v01,v11,v21,v31);
}
typedef void (*PFNGLUNIFORM4IVARBPROC_HPP)(GLint,GLsizei,const GLint *);
static inline void Uniform4ivARB(GLint location1,GLsizei count1,const GLint * value1)
{
	static PFNGLUNIFORM4IVARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM4IVARBPROC_HPP>(_impl::_get_proc_address("glUniform4ivARB","GL_ARB_shader_objects"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORMMATRIX2FVARBPROC_HPP)(GLint,GLsizei,GLboolean,const GLfloat *);
static inline void UniformMatrix2fvARB(GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLUNIFORMMATRIX2FVARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMMATRIX2FVARBPROC_HPP>(_impl::_get_proc_address("glUniformMatrix2fvARB","GL_ARB_shader_objects"));
	 fn(location1,count1,transpose1,value1);
}
typedef void (*PFNGLUNIFORMMATRIX3FVARBPROC_HPP)(GLint,GLsizei,GLboolean,const GLfloat *);
static inline void UniformMatrix3fvARB(GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLUNIFORMMATRIX3FVARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMMATRIX3FVARBPROC_HPP>(_impl::_get_proc_address("glUniformMatrix3fvARB","GL_ARB_shader_objects"));
	 fn(location1,count1,transpose1,value1);
}
typedef void (*PFNGLUNIFORMMATRIX4FVARBPROC_HPP)(GLint,GLsizei,GLboolean,const GLfloat *);
static inline void UniformMatrix4fvARB(GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLUNIFORMMATRIX4FVARBPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMMATRIX4FVARBPROC_HPP>(_impl::_get_proc_address("glUniformMatrix4fvARB","GL_ARB_shader_objects"));
	 fn(location1,count1,transpose1,value1);
}
typedef void (*PFNGLUSEPROGRAMOBJECTARBPROC_HPP)(GLhandleARB);
static inline void UseProgramObjectARB(GLhandleARB programObj1)
{
	static PFNGLUSEPROGRAMOBJECTARBPROC_HPP fn=reinterpret_cast<PFNGLUSEPROGRAMOBJECTARBPROC_HPP>(_impl::_get_proc_address("glUseProgramObjectARB","GL_ARB_shader_objects"));
	 fn(programObj1);
}
typedef void (*PFNGLVALIDATEPROGRAMARBPROC_HPP)(GLhandleARB);
static inline void ValidateProgramARB(GLhandleARB programObj1)
{
	static PFNGLVALIDATEPROGRAMARBPROC_HPP fn=reinterpret_cast<PFNGLVALIDATEPROGRAMARBPROC_HPP>(_impl::_get_proc_address("glValidateProgramARB","GL_ARB_shader_objects"));
	 fn(programObj1);
}}
#endif

#ifndef GL_ARB_shader_precision
#define GL_ARB_shader_precision
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_shader_stencil_export
#define GL_ARB_shader_stencil_export
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_shader_storage_buffer_object
#define GL_ARB_shader_storage_buffer_object
#ifndef GL_SHADER_STORAGE_BARRIER_BIT
#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000
#endif //GL_SHADER_STORAGE_BARRIER_BIT
#ifndef GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES
#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39
#endif //GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES
#ifndef GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS
#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39
#endif //GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS
#ifndef GL_SHADER_STORAGE_BUFFER
#define GL_SHADER_STORAGE_BUFFER 0x90D2
#endif //GL_SHADER_STORAGE_BUFFER
#ifndef GL_SHADER_STORAGE_BUFFER_BINDING
#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3
#endif //GL_SHADER_STORAGE_BUFFER_BINDING
#ifndef GL_SHADER_STORAGE_BUFFER_START
#define GL_SHADER_STORAGE_BUFFER_START 0x90D4
#endif //GL_SHADER_STORAGE_BUFFER_START
#ifndef GL_SHADER_STORAGE_BUFFER_SIZE
#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5
#endif //GL_SHADER_STORAGE_BUFFER_SIZE
#ifndef GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS
#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6
#endif //GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS
#ifndef GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS
#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7
#endif //GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS
#ifndef GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS
#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8
#endif //GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS
#ifndef GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS
#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9
#endif //GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS
#ifndef GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS
#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA
#endif //GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS
#ifndef GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS
#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB
#endif //GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS
#ifndef GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS
#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC
#endif //GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS
#ifndef GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS
#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD
#endif //GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS
#ifndef GL_MAX_SHADER_STORAGE_BLOCK_SIZE
#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE
#endif //GL_MAX_SHADER_STORAGE_BLOCK_SIZE
#ifndef GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT
#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF
#endif //GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT
extern "C" {
}
namespace gl{

typedef void (*PFNGLSHADERSTORAGEBLOCKBINDINGPROC_HPP)(GLuint,GLuint,GLuint);
static inline void ShaderStorageBlockBinding(GLuint program1,GLuint storageBlockIndex1,GLuint storageBlockBinding1)
{
	static PFNGLSHADERSTORAGEBLOCKBINDINGPROC_HPP fn=reinterpret_cast<PFNGLSHADERSTORAGEBLOCKBINDINGPROC_HPP>(_impl::_get_proc_address("glShaderStorageBlockBinding","GL_ARB_shader_storage_buffer_object"));
	 fn(program1,storageBlockIndex1,storageBlockBinding1);
}}
#endif

#ifndef GL_ARB_shader_subroutine
#define GL_ARB_shader_subroutine
#ifndef GL_UNIFORM_SIZE
#define GL_UNIFORM_SIZE 0x8A38
#endif //GL_UNIFORM_SIZE
#ifndef GL_UNIFORM_NAME_LENGTH
#define GL_UNIFORM_NAME_LENGTH 0x8A39
#endif //GL_UNIFORM_NAME_LENGTH
#ifndef GL_ACTIVE_SUBROUTINES
#define GL_ACTIVE_SUBROUTINES 0x8DE5
#endif //GL_ACTIVE_SUBROUTINES
#ifndef GL_ACTIVE_SUBROUTINE_UNIFORMS
#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6
#endif //GL_ACTIVE_SUBROUTINE_UNIFORMS
#ifndef GL_MAX_SUBROUTINES
#define GL_MAX_SUBROUTINES 0x8DE7
#endif //GL_MAX_SUBROUTINES
#ifndef GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS
#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8
#endif //GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS
#ifndef GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS
#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47
#endif //GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS
#ifndef GL_ACTIVE_SUBROUTINE_MAX_LENGTH
#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48
#endif //GL_ACTIVE_SUBROUTINE_MAX_LENGTH
#ifndef GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH
#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49
#endif //GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH
#ifndef GL_NUM_COMPATIBLE_SUBROUTINES
#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A
#endif //GL_NUM_COMPATIBLE_SUBROUTINES
#ifndef GL_COMPATIBLE_SUBROUTINES
#define GL_COMPATIBLE_SUBROUTINES 0x8E4B
#endif //GL_COMPATIBLE_SUBROUTINES
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETACTIVESUBROUTINENAMEPROC_HPP)(GLuint,GLenum,GLuint,GLsizei,GLsizei *,GLchar *);
static inline void GetActiveSubroutineName(GLuint program1,GLenum shadertype1,GLuint index1,GLsizei bufsize1,GLsizei * length1,GLchar * name1)
{
	static PFNGLGETACTIVESUBROUTINENAMEPROC_HPP fn=reinterpret_cast<PFNGLGETACTIVESUBROUTINENAMEPROC_HPP>(_impl::_get_proc_address("glGetActiveSubroutineName","GL_ARB_shader_subroutine"));
	 fn(program1,shadertype1,index1,bufsize1,length1,name1);
}
typedef void (*PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC_HPP)(GLuint,GLenum,GLuint,GLsizei,GLsizei *,GLchar *);
static inline void GetActiveSubroutineUniformName(GLuint program1,GLenum shadertype1,GLuint index1,GLsizei bufsize1,GLsizei * length1,GLchar * name1)
{
	static PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC_HPP fn=reinterpret_cast<PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC_HPP>(_impl::_get_proc_address("glGetActiveSubroutineUniformName","GL_ARB_shader_subroutine"));
	 fn(program1,shadertype1,index1,bufsize1,length1,name1);
}
typedef void (*PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC_HPP)(GLuint,GLenum,GLuint,GLenum,GLint *);
static inline void GetActiveSubroutineUniformiv(GLuint program1,GLenum shadertype1,GLuint index1,GLenum pname1,GLint * values1)
{
	static PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC_HPP fn=reinterpret_cast<PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC_HPP>(_impl::_get_proc_address("glGetActiveSubroutineUniformiv","GL_ARB_shader_subroutine"));
	 fn(program1,shadertype1,index1,pname1,values1);
}
typedef void (*PFNGLGETPROGRAMSTAGEIVPROC_HPP)(GLuint,GLenum,GLenum,GLint *);
static inline void GetProgramStageiv(GLuint program1,GLenum shadertype1,GLenum pname1,GLint * values1)
{
	static PFNGLGETPROGRAMSTAGEIVPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMSTAGEIVPROC_HPP>(_impl::_get_proc_address("glGetProgramStageiv","GL_ARB_shader_subroutine"));
	 fn(program1,shadertype1,pname1,values1);
}
typedef GLuint (*PFNGLGETSUBROUTINEINDEXPROC_HPP)(GLuint,GLenum,const GLchar *);
static inline GLuint GetSubroutineIndex(GLuint program1,GLenum shadertype1,const GLchar * name1)
{
	static PFNGLGETSUBROUTINEINDEXPROC_HPP fn=reinterpret_cast<PFNGLGETSUBROUTINEINDEXPROC_HPP>(_impl::_get_proc_address("glGetSubroutineIndex","GL_ARB_shader_subroutine"));
	return fn(program1,shadertype1,name1);
}
typedef GLint (*PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC_HPP)(GLuint,GLenum,const GLchar *);
static inline GLint GetSubroutineUniformLocation(GLuint program1,GLenum shadertype1,const GLchar * name1)
{
	static PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC_HPP fn=reinterpret_cast<PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC_HPP>(_impl::_get_proc_address("glGetSubroutineUniformLocation","GL_ARB_shader_subroutine"));
	return fn(program1,shadertype1,name1);
}
typedef void (*PFNGLGETUNIFORMSUBROUTINEUIVPROC_HPP)(GLenum,GLint,GLuint *);
static inline void GetUniformSubroutineuiv(GLenum shadertype1,GLint location1,GLuint * params1)
{
	static PFNGLGETUNIFORMSUBROUTINEUIVPROC_HPP fn=reinterpret_cast<PFNGLGETUNIFORMSUBROUTINEUIVPROC_HPP>(_impl::_get_proc_address("glGetUniformSubroutineuiv","GL_ARB_shader_subroutine"));
	 fn(shadertype1,location1,params1);
}
typedef void (*PFNGLUNIFORMSUBROUTINESUIVPROC_HPP)(GLenum,GLsizei,const GLuint *);
static inline void UniformSubroutinesuiv(GLenum shadertype1,GLsizei count1,const GLuint * indices1)
{
	static PFNGLUNIFORMSUBROUTINESUIVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMSUBROUTINESUIVPROC_HPP>(_impl::_get_proc_address("glUniformSubroutinesuiv","GL_ARB_shader_subroutine"));
	 fn(shadertype1,count1,indices1);
}}
#endif

#ifndef GL_ARB_shader_texture_image_samples
#define GL_ARB_shader_texture_image_samples
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_shader_texture_lod
#define GL_ARB_shader_texture_lod
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_shading_language_100
#define GL_ARB_shading_language_100
#ifndef GL_SHADING_LANGUAGE_VERSION_ARB
#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C
#endif //GL_SHADING_LANGUAGE_VERSION_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_shading_language_420pack
#define GL_ARB_shading_language_420pack
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_shading_language_include
#define GL_ARB_shading_language_include
#ifndef GL_SHADER_INCLUDE_ARB
#define GL_SHADER_INCLUDE_ARB 0x8DAE
#endif //GL_SHADER_INCLUDE_ARB
#ifndef GL_NAMED_STRING_LENGTH_ARB
#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9
#endif //GL_NAMED_STRING_LENGTH_ARB
#ifndef GL_NAMED_STRING_TYPE_ARB
#define GL_NAMED_STRING_TYPE_ARB 0x8DEA
#endif //GL_NAMED_STRING_TYPE_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLCOMPILESHADERINCLUDEARBPROC_HPP)(GLuint,GLsizei,const GLchar *const*,const GLint *);
static inline void CompileShaderIncludeARB(GLuint shader1,GLsizei count1,const GLchar *const* path1,const GLint * length1)
{
	static PFNGLCOMPILESHADERINCLUDEARBPROC_HPP fn=reinterpret_cast<PFNGLCOMPILESHADERINCLUDEARBPROC_HPP>(_impl::_get_proc_address("glCompileShaderIncludeARB","GL_ARB_shading_language_include"));
	 fn(shader1,count1,path1,length1);
}
typedef void (*PFNGLDELETENAMEDSTRINGARBPROC_HPP)(GLint,const GLchar *);
static inline void DeleteNamedStringARB(GLint namelen1,const GLchar * name1)
{
	static PFNGLDELETENAMEDSTRINGARBPROC_HPP fn=reinterpret_cast<PFNGLDELETENAMEDSTRINGARBPROC_HPP>(_impl::_get_proc_address("glDeleteNamedStringARB","GL_ARB_shading_language_include"));
	 fn(namelen1,name1);
}
typedef void (*PFNGLGETNAMEDSTRINGARBPROC_HPP)(GLint,const GLchar *,GLsizei,GLint *,GLchar *);
static inline void GetNamedStringARB(GLint namelen1,const GLchar * name1,GLsizei bufSize1,GLint * stringlen1,GLchar * string1)
{
	static PFNGLGETNAMEDSTRINGARBPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDSTRINGARBPROC_HPP>(_impl::_get_proc_address("glGetNamedStringARB","GL_ARB_shading_language_include"));
	 fn(namelen1,name1,bufSize1,stringlen1,string1);
}
typedef void (*PFNGLGETNAMEDSTRINGIVARBPROC_HPP)(GLint,const GLchar *,GLenum,GLint *);
static inline void GetNamedStringivARB(GLint namelen1,const GLchar * name1,GLenum pname1,GLint * params1)
{
	static PFNGLGETNAMEDSTRINGIVARBPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDSTRINGIVARBPROC_HPP>(_impl::_get_proc_address("glGetNamedStringivARB","GL_ARB_shading_language_include"));
	 fn(namelen1,name1,pname1,params1);
}
typedef GLboolean (*PFNGLISNAMEDSTRINGARBPROC_HPP)(GLint,const GLchar *);
static inline GLboolean IsNamedStringARB(GLint namelen1,const GLchar * name1)
{
	static PFNGLISNAMEDSTRINGARBPROC_HPP fn=reinterpret_cast<PFNGLISNAMEDSTRINGARBPROC_HPP>(_impl::_get_proc_address("glIsNamedStringARB","GL_ARB_shading_language_include"));
	return fn(namelen1,name1);
}
typedef void (*PFNGLNAMEDSTRINGARBPROC_HPP)(GLenum,GLint,const GLchar *,GLint,const GLchar *);
static inline void NamedStringARB(GLenum type1,GLint namelen1,const GLchar * name1,GLint stringlen1,const GLchar * string1)
{
	static PFNGLNAMEDSTRINGARBPROC_HPP fn=reinterpret_cast<PFNGLNAMEDSTRINGARBPROC_HPP>(_impl::_get_proc_address("glNamedStringARB","GL_ARB_shading_language_include"));
	 fn(type1,namelen1,name1,stringlen1,string1);
}}
#endif

#ifndef GL_ARB_shading_language_packing
#define GL_ARB_shading_language_packing
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_shadow
#define GL_ARB_shadow
#ifndef GL_TEXTURE_COMPARE_MODE_ARB
#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C
#endif //GL_TEXTURE_COMPARE_MODE_ARB
#ifndef GL_TEXTURE_COMPARE_FUNC_ARB
#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D
#endif //GL_TEXTURE_COMPARE_FUNC_ARB
#ifndef GL_COMPARE_R_TO_TEXTURE_ARB
#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E
#endif //GL_COMPARE_R_TO_TEXTURE_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_shadow_ambient
#define GL_ARB_shadow_ambient
#ifndef GL_TEXTURE_COMPARE_FAIL_VALUE_ARB
#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF
#endif //GL_TEXTURE_COMPARE_FAIL_VALUE_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_sparse_buffer
#define GL_ARB_sparse_buffer
#ifndef GL_SPARSE_STORAGE_BIT_ARB
#define GL_SPARSE_STORAGE_BIT_ARB 0x0400
#endif //GL_SPARSE_STORAGE_BIT_ARB
#ifndef GL_SPARSE_BUFFER_PAGE_SIZE_ARB
#define GL_SPARSE_BUFFER_PAGE_SIZE_ARB 0x82F8
#endif //GL_SPARSE_BUFFER_PAGE_SIZE_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLBUFFERPAGECOMMITMENTARBPROC_HPP)(GLenum,GLintptr,GLsizeiptr,GLboolean);
static inline void BufferPageCommitmentARB(GLenum target1,GLintptr offset1,GLsizeiptr size1,GLboolean commit1)
{
	static PFNGLBUFFERPAGECOMMITMENTARBPROC_HPP fn=reinterpret_cast<PFNGLBUFFERPAGECOMMITMENTARBPROC_HPP>(_impl::_get_proc_address("glBufferPageCommitmentARB","GL_ARB_sparse_buffer"));
	 fn(target1,offset1,size1,commit1);
}
typedef void (*PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC_HPP)(GLuint,GLintptr,GLsizeiptr,GLboolean);
static inline void NamedBufferPageCommitmentARB(GLuint buffer1,GLintptr offset1,GLsizeiptr size1,GLboolean commit1)
{
	static PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC_HPP fn=reinterpret_cast<PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC_HPP>(_impl::_get_proc_address("glNamedBufferPageCommitmentARB","GL_ARB_sparse_buffer"));
	 fn(buffer1,offset1,size1,commit1);
}
typedef void (*PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC_HPP)(GLuint,GLintptr,GLsizeiptr,GLboolean);
static inline void NamedBufferPageCommitmentEXT(GLuint buffer1,GLintptr offset1,GLsizeiptr size1,GLboolean commit1)
{
	static PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC_HPP>(_impl::_get_proc_address("glNamedBufferPageCommitmentEXT","GL_ARB_sparse_buffer"));
	 fn(buffer1,offset1,size1,commit1);
}}
#endif

#ifndef GL_ARB_sparse_texture
#define GL_ARB_sparse_texture
#ifndef GL_VIRTUAL_PAGE_SIZE_X_ARB
#define GL_VIRTUAL_PAGE_SIZE_X_ARB 0x9195
#endif //GL_VIRTUAL_PAGE_SIZE_X_ARB
#ifndef GL_VIRTUAL_PAGE_SIZE_Y_ARB
#define GL_VIRTUAL_PAGE_SIZE_Y_ARB 0x9196
#endif //GL_VIRTUAL_PAGE_SIZE_Y_ARB
#ifndef GL_VIRTUAL_PAGE_SIZE_Z_ARB
#define GL_VIRTUAL_PAGE_SIZE_Z_ARB 0x9197
#endif //GL_VIRTUAL_PAGE_SIZE_Z_ARB
#ifndef GL_MAX_SPARSE_TEXTURE_SIZE_ARB
#define GL_MAX_SPARSE_TEXTURE_SIZE_ARB 0x9198
#endif //GL_MAX_SPARSE_TEXTURE_SIZE_ARB
#ifndef GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB
#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB 0x9199
#endif //GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB
#ifndef GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB
#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A
#endif //GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB
#ifndef GL_TEXTURE_SPARSE_ARB
#define GL_TEXTURE_SPARSE_ARB 0x91A6
#endif //GL_TEXTURE_SPARSE_ARB
#ifndef GL_VIRTUAL_PAGE_SIZE_INDEX_ARB
#define GL_VIRTUAL_PAGE_SIZE_INDEX_ARB 0x91A7
#endif //GL_VIRTUAL_PAGE_SIZE_INDEX_ARB
#ifndef GL_NUM_VIRTUAL_PAGE_SIZES_ARB
#define GL_NUM_VIRTUAL_PAGE_SIZES_ARB 0x91A8
#endif //GL_NUM_VIRTUAL_PAGE_SIZES_ARB
#ifndef GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB
#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9
#endif //GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB
#ifndef GL_NUM_SPARSE_LEVELS_ARB
#define GL_NUM_SPARSE_LEVELS_ARB 0x91AA
#endif //GL_NUM_SPARSE_LEVELS_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLTEXPAGECOMMITMENTARBPROC_HPP)(GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLboolean);
static inline void TexPageCommitmentARB(GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLsizei width1,GLsizei height1,GLsizei depth1,GLboolean resident1)
{
	static PFNGLTEXPAGECOMMITMENTARBPROC_HPP fn=reinterpret_cast<PFNGLTEXPAGECOMMITMENTARBPROC_HPP>(_impl::_get_proc_address("glTexPageCommitmentARB","GL_ARB_sparse_texture"));
	 fn(target1,level1,xoffset1,yoffset1,zoffset1,width1,height1,depth1,resident1);
}}
#endif

#ifndef GL_ARB_stencil_texturing
#define GL_ARB_stencil_texturing
#ifndef GL_DEPTH_STENCIL_TEXTURE_MODE
#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA
#endif //GL_DEPTH_STENCIL_TEXTURE_MODE
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_sync
#define GL_ARB_sync
#ifndef GL_SYNC_FLUSH_COMMANDS_BIT
#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
#endif //GL_SYNC_FLUSH_COMMANDS_BIT
#ifndef GL_MAX_SERVER_WAIT_TIMEOUT
#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
#endif //GL_MAX_SERVER_WAIT_TIMEOUT
#ifndef GL_OBJECT_TYPE
#define GL_OBJECT_TYPE 0x9112
#endif //GL_OBJECT_TYPE
#ifndef GL_SYNC_CONDITION
#define GL_SYNC_CONDITION 0x9113
#endif //GL_SYNC_CONDITION
#ifndef GL_SYNC_STATUS
#define GL_SYNC_STATUS 0x9114
#endif //GL_SYNC_STATUS
#ifndef GL_SYNC_FLAGS
#define GL_SYNC_FLAGS 0x9115
#endif //GL_SYNC_FLAGS
#ifndef GL_SYNC_FENCE
#define GL_SYNC_FENCE 0x9116
#endif //GL_SYNC_FENCE
#ifndef GL_SYNC_GPU_COMMANDS_COMPLETE
#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
#endif //GL_SYNC_GPU_COMMANDS_COMPLETE
#ifndef GL_UNSIGNALED
#define GL_UNSIGNALED 0x9118
#endif //GL_UNSIGNALED
#ifndef GL_SIGNALED
#define GL_SIGNALED 0x9119
#endif //GL_SIGNALED
#ifndef GL_ALREADY_SIGNALED
#define GL_ALREADY_SIGNALED 0x911A
#endif //GL_ALREADY_SIGNALED
#ifndef GL_TIMEOUT_EXPIRED
#define GL_TIMEOUT_EXPIRED 0x911B
#endif //GL_TIMEOUT_EXPIRED
#ifndef GL_CONDITION_SATISFIED
#define GL_CONDITION_SATISFIED 0x911C
#endif //GL_CONDITION_SATISFIED
#ifndef GL_WAIT_FAILED
#define GL_WAIT_FAILED 0x911D
#endif //GL_WAIT_FAILED
#ifndef GL_TIMEOUT_IGNORED
#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF
#endif //GL_TIMEOUT_IGNORED
extern "C" {
}
namespace gl{

typedef GLenum (*PFNGLCLIENTWAITSYNCPROC_HPP)(GLsync,GLbitfield,GLuint64);
static inline GLenum ClientWaitSync(GLsync sync1,GLbitfield flags1,GLuint64 timeout1)
{
	static PFNGLCLIENTWAITSYNCPROC_HPP fn=reinterpret_cast<PFNGLCLIENTWAITSYNCPROC_HPP>(_impl::_get_proc_address("glClientWaitSync","GL_ARB_sync"));
	return fn(sync1,flags1,timeout1);
}
typedef void (*PFNGLDELETESYNCPROC_HPP)(GLsync);
static inline void DeleteSync(GLsync sync1)
{
	static PFNGLDELETESYNCPROC_HPP fn=reinterpret_cast<PFNGLDELETESYNCPROC_HPP>(_impl::_get_proc_address("glDeleteSync","GL_ARB_sync"));
	 fn(sync1);
}
typedef GLsync (*PFNGLFENCESYNCPROC_HPP)(GLenum,GLbitfield);
static inline GLsync FenceSync(GLenum condition1,GLbitfield flags1)
{
	static PFNGLFENCESYNCPROC_HPP fn=reinterpret_cast<PFNGLFENCESYNCPROC_HPP>(_impl::_get_proc_address("glFenceSync","GL_ARB_sync"));
	return fn(condition1,flags1);
}
typedef void (*PFNGLGETINTEGER64VPROC_HPP)(GLenum,GLint64 *);
static inline void GetInteger64v(GLenum pname1,GLint64 * data1)
{
	static PFNGLGETINTEGER64VPROC_HPP fn=reinterpret_cast<PFNGLGETINTEGER64VPROC_HPP>(_impl::_get_proc_address("glGetInteger64v","GL_ARB_sync"));
	 fn(pname1,data1);
}
typedef void (*PFNGLGETSYNCIVPROC_HPP)(GLsync,GLenum,GLsizei,GLsizei *,GLint *);
static inline void GetSynciv(GLsync sync1,GLenum pname1,GLsizei bufSize1,GLsizei * length1,GLint * values1)
{
	static PFNGLGETSYNCIVPROC_HPP fn=reinterpret_cast<PFNGLGETSYNCIVPROC_HPP>(_impl::_get_proc_address("glGetSynciv","GL_ARB_sync"));
	 fn(sync1,pname1,bufSize1,length1,values1);
}
typedef GLboolean (*PFNGLISSYNCPROC_HPP)(GLsync);
static inline GLboolean IsSync(GLsync sync1)
{
	static PFNGLISSYNCPROC_HPP fn=reinterpret_cast<PFNGLISSYNCPROC_HPP>(_impl::_get_proc_address("glIsSync","GL_ARB_sync"));
	return fn(sync1);
}
typedef void (*PFNGLWAITSYNCPROC_HPP)(GLsync,GLbitfield,GLuint64);
static inline void WaitSync(GLsync sync1,GLbitfield flags1,GLuint64 timeout1)
{
	static PFNGLWAITSYNCPROC_HPP fn=reinterpret_cast<PFNGLWAITSYNCPROC_HPP>(_impl::_get_proc_address("glWaitSync","GL_ARB_sync"));
	 fn(sync1,flags1,timeout1);
}}
#endif

#ifndef GL_ARB_tessellation_shader
#define GL_ARB_tessellation_shader
#ifndef GL_TRIANGLES
#define GL_TRIANGLES 0x0004
#endif //GL_TRIANGLES
#ifndef GL_QUADS
#define GL_QUADS 0x0007
#endif //GL_QUADS
#ifndef GL_PATCHES
#define GL_PATCHES 0x000E
#endif //GL_PATCHES
#ifndef GL_EQUAL
#define GL_EQUAL 0x0202
#endif //GL_EQUAL
#ifndef GL_CW
#define GL_CW 0x0900
#endif //GL_CW
#ifndef GL_CCW
#define GL_CCW 0x0901
#endif //GL_CCW
#ifndef GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER
#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0
#endif //GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER
#ifndef GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER
#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1
#endif //GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER
#ifndef GL_MAX_TESS_CONTROL_INPUT_COMPONENTS
#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C
#endif //GL_MAX_TESS_CONTROL_INPUT_COMPONENTS
#ifndef GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS
#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D
#endif //GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS
#ifndef GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS
#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E
#endif //GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS
#ifndef GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS
#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F
#endif //GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS
#ifndef GL_PATCH_VERTICES
#define GL_PATCH_VERTICES 0x8E72
#endif //GL_PATCH_VERTICES
#ifndef GL_PATCH_DEFAULT_INNER_LEVEL
#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73
#endif //GL_PATCH_DEFAULT_INNER_LEVEL
#ifndef GL_PATCH_DEFAULT_OUTER_LEVEL
#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74
#endif //GL_PATCH_DEFAULT_OUTER_LEVEL
#ifndef GL_TESS_CONTROL_OUTPUT_VERTICES
#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75
#endif //GL_TESS_CONTROL_OUTPUT_VERTICES
#ifndef GL_TESS_GEN_MODE
#define GL_TESS_GEN_MODE 0x8E76
#endif //GL_TESS_GEN_MODE
#ifndef GL_TESS_GEN_SPACING
#define GL_TESS_GEN_SPACING 0x8E77
#endif //GL_TESS_GEN_SPACING
#ifndef GL_TESS_GEN_VERTEX_ORDER
#define GL_TESS_GEN_VERTEX_ORDER 0x8E78
#endif //GL_TESS_GEN_VERTEX_ORDER
#ifndef GL_TESS_GEN_POINT_MODE
#define GL_TESS_GEN_POINT_MODE 0x8E79
#endif //GL_TESS_GEN_POINT_MODE
#ifndef GL_ISOLINES
#define GL_ISOLINES 0x8E7A
#endif //GL_ISOLINES
#ifndef GL_FRACTIONAL_ODD
#define GL_FRACTIONAL_ODD 0x8E7B
#endif //GL_FRACTIONAL_ODD
#ifndef GL_FRACTIONAL_EVEN
#define GL_FRACTIONAL_EVEN 0x8E7C
#endif //GL_FRACTIONAL_EVEN
#ifndef GL_MAX_PATCH_VERTICES
#define GL_MAX_PATCH_VERTICES 0x8E7D
#endif //GL_MAX_PATCH_VERTICES
#ifndef GL_MAX_TESS_GEN_LEVEL
#define GL_MAX_TESS_GEN_LEVEL 0x8E7E
#endif //GL_MAX_TESS_GEN_LEVEL
#ifndef GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS
#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F
#endif //GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS
#ifndef GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS
#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80
#endif //GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS
#ifndef GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS
#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81
#endif //GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS
#ifndef GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS
#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82
#endif //GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS
#ifndef GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS
#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83
#endif //GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS
#ifndef GL_MAX_TESS_PATCH_COMPONENTS
#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84
#endif //GL_MAX_TESS_PATCH_COMPONENTS
#ifndef GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS
#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85
#endif //GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS
#ifndef GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS
#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86
#endif //GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS
#ifndef GL_TESS_EVALUATION_SHADER
#define GL_TESS_EVALUATION_SHADER 0x8E87
#endif //GL_TESS_EVALUATION_SHADER
#ifndef GL_TESS_CONTROL_SHADER
#define GL_TESS_CONTROL_SHADER 0x8E88
#endif //GL_TESS_CONTROL_SHADER
#ifndef GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS
#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89
#endif //GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS
#ifndef GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS
#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A
#endif //GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS
extern "C" {
}
namespace gl{

typedef void (*PFNGLPATCHPARAMETERFVPROC_HPP)(GLenum,const GLfloat *);
static inline void PatchParameterfv(GLenum pname1,const GLfloat * values1)
{
	static PFNGLPATCHPARAMETERFVPROC_HPP fn=reinterpret_cast<PFNGLPATCHPARAMETERFVPROC_HPP>(_impl::_get_proc_address("glPatchParameterfv","GL_ARB_tessellation_shader"));
	 fn(pname1,values1);
}
typedef void (*PFNGLPATCHPARAMETERIPROC_HPP)(GLenum,GLint);
static inline void PatchParameteri(GLenum pname1,GLint value1)
{
	static PFNGLPATCHPARAMETERIPROC_HPP fn=reinterpret_cast<PFNGLPATCHPARAMETERIPROC_HPP>(_impl::_get_proc_address("glPatchParameteri","GL_ARB_tessellation_shader"));
	 fn(pname1,value1);
}}
#endif

#ifndef GL_ARB_texture_barrier
#define GL_ARB_texture_barrier
extern "C" {
}
namespace gl{

typedef void (*PFNGLTEXTUREBARRIERPROC_HPP)();
static inline void TextureBarrier()
{
	static PFNGLTEXTUREBARRIERPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREBARRIERPROC_HPP>(_impl::_get_proc_address("glTextureBarrier","GL_ARB_texture_barrier"));
	 fn();
}}
#endif

#ifndef GL_ARB_texture_border_clamp
#define GL_ARB_texture_border_clamp
#ifndef GL_CLAMP_TO_BORDER_ARB
#define GL_CLAMP_TO_BORDER_ARB 0x812D
#endif //GL_CLAMP_TO_BORDER_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_buffer_object
#define GL_ARB_texture_buffer_object
#ifndef GL_TEXTURE_BUFFER_ARB
#define GL_TEXTURE_BUFFER_ARB 0x8C2A
#endif //GL_TEXTURE_BUFFER_ARB
#ifndef GL_MAX_TEXTURE_BUFFER_SIZE_ARB
#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B
#endif //GL_MAX_TEXTURE_BUFFER_SIZE_ARB
#ifndef GL_TEXTURE_BINDING_BUFFER_ARB
#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C
#endif //GL_TEXTURE_BINDING_BUFFER_ARB
#ifndef GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB
#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D
#endif //GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB
#ifndef GL_TEXTURE_BUFFER_FORMAT_ARB
#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E
#endif //GL_TEXTURE_BUFFER_FORMAT_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLTEXBUFFERARBPROC_HPP)(GLenum,GLenum,GLuint);
static inline void TexBufferARB(GLenum target1,GLenum internalformat1,GLuint buffer1)
{
	static PFNGLTEXBUFFERARBPROC_HPP fn=reinterpret_cast<PFNGLTEXBUFFERARBPROC_HPP>(_impl::_get_proc_address("glTexBufferARB","GL_ARB_texture_buffer_object"));
	 fn(target1,internalformat1,buffer1);
}}
#endif

#ifndef GL_ARB_texture_buffer_object_rgb32
#define GL_ARB_texture_buffer_object_rgb32
#ifndef GL_RGB32F
#define GL_RGB32F 0x8815
#endif //GL_RGB32F
#ifndef GL_RGB32UI
#define GL_RGB32UI 0x8D71
#endif //GL_RGB32UI
#ifndef GL_RGB32I
#define GL_RGB32I 0x8D83
#endif //GL_RGB32I
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_buffer_range
#define GL_ARB_texture_buffer_range
#ifndef GL_TEXTURE_BUFFER_OFFSET
#define GL_TEXTURE_BUFFER_OFFSET 0x919D
#endif //GL_TEXTURE_BUFFER_OFFSET
#ifndef GL_TEXTURE_BUFFER_SIZE
#define GL_TEXTURE_BUFFER_SIZE 0x919E
#endif //GL_TEXTURE_BUFFER_SIZE
#ifndef GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT
#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F
#endif //GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT
extern "C" {
}
namespace gl{

typedef void (*PFNGLTEXBUFFERRANGEPROC_HPP)(GLenum,GLenum,GLuint,GLintptr,GLsizeiptr);
static inline void TexBufferRange(GLenum target1,GLenum internalformat1,GLuint buffer1,GLintptr offset1,GLsizeiptr size1)
{
	static PFNGLTEXBUFFERRANGEPROC_HPP fn=reinterpret_cast<PFNGLTEXBUFFERRANGEPROC_HPP>(_impl::_get_proc_address("glTexBufferRange","GL_ARB_texture_buffer_range"));
	 fn(target1,internalformat1,buffer1,offset1,size1);
}}
#endif

#ifndef GL_ARB_texture_compression
#define GL_ARB_texture_compression
#ifndef GL_COMPRESSED_ALPHA_ARB
#define GL_COMPRESSED_ALPHA_ARB 0x84E9
#endif //GL_COMPRESSED_ALPHA_ARB
#ifndef GL_COMPRESSED_LUMINANCE_ARB
#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA
#endif //GL_COMPRESSED_LUMINANCE_ARB
#ifndef GL_COMPRESSED_LUMINANCE_ALPHA_ARB
#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB
#endif //GL_COMPRESSED_LUMINANCE_ALPHA_ARB
#ifndef GL_COMPRESSED_INTENSITY_ARB
#define GL_COMPRESSED_INTENSITY_ARB 0x84EC
#endif //GL_COMPRESSED_INTENSITY_ARB
#ifndef GL_COMPRESSED_RGB_ARB
#define GL_COMPRESSED_RGB_ARB 0x84ED
#endif //GL_COMPRESSED_RGB_ARB
#ifndef GL_COMPRESSED_RGBA_ARB
#define GL_COMPRESSED_RGBA_ARB 0x84EE
#endif //GL_COMPRESSED_RGBA_ARB
#ifndef GL_TEXTURE_COMPRESSION_HINT_ARB
#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF
#endif //GL_TEXTURE_COMPRESSION_HINT_ARB
#ifndef GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB
#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0
#endif //GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB
#ifndef GL_TEXTURE_COMPRESSED_ARB
#define GL_TEXTURE_COMPRESSED_ARB 0x86A1
#endif //GL_TEXTURE_COMPRESSED_ARB
#ifndef GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2
#endif //GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
#ifndef GL_COMPRESSED_TEXTURE_FORMATS_ARB
#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3
#endif //GL_COMPRESSED_TEXTURE_FORMATS_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLCOMPRESSEDTEXIMAGE1DARBPROC_HPP)(GLenum,GLint,GLenum,GLsizei,GLint,GLsizei,const void *);
static inline void CompressedTexImage1DARB(GLenum target1,GLint level1,GLenum internalformat1,GLsizei width1,GLint border1,GLsizei imageSize1,const void * data1)
{
	static PFNGLCOMPRESSEDTEXIMAGE1DARBPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDTEXIMAGE1DARBPROC_HPP>(_impl::_get_proc_address("glCompressedTexImage1DARB","GL_ARB_texture_compression"));
	 fn(target1,level1,internalformat1,width1,border1,imageSize1,data1);
}
typedef void (*PFNGLCOMPRESSEDTEXIMAGE2DARBPROC_HPP)(GLenum,GLint,GLenum,GLsizei,GLsizei,GLint,GLsizei,const void *);
static inline void CompressedTexImage2DARB(GLenum target1,GLint level1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLint border1,GLsizei imageSize1,const void * data1)
{
	static PFNGLCOMPRESSEDTEXIMAGE2DARBPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDTEXIMAGE2DARBPROC_HPP>(_impl::_get_proc_address("glCompressedTexImage2DARB","GL_ARB_texture_compression"));
	 fn(target1,level1,internalformat1,width1,height1,border1,imageSize1,data1);
}
typedef void (*PFNGLCOMPRESSEDTEXIMAGE3DARBPROC_HPP)(GLenum,GLint,GLenum,GLsizei,GLsizei,GLsizei,GLint,GLsizei,const void *);
static inline void CompressedTexImage3DARB(GLenum target1,GLint level1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLsizei depth1,GLint border1,GLsizei imageSize1,const void * data1)
{
	static PFNGLCOMPRESSEDTEXIMAGE3DARBPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDTEXIMAGE3DARBPROC_HPP>(_impl::_get_proc_address("glCompressedTexImage3DARB","GL_ARB_texture_compression"));
	 fn(target1,level1,internalformat1,width1,height1,depth1,border1,imageSize1,data1);
}
typedef void (*PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC_HPP)(GLenum,GLint,GLint,GLsizei,GLenum,GLsizei,const void *);
static inline void CompressedTexSubImage1DARB(GLenum target1,GLint level1,GLint xoffset1,GLsizei width1,GLenum format1,GLsizei imageSize1,const void * data1)
{
	static PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC_HPP>(_impl::_get_proc_address("glCompressedTexSubImage1DARB","GL_ARB_texture_compression"));
	 fn(target1,level1,xoffset1,width1,format1,imageSize1,data1);
}
typedef void (*PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC_HPP)(GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLsizei,const void *);
static inline void CompressedTexSubImage2DARB(GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLsizei width1,GLsizei height1,GLenum format1,GLsizei imageSize1,const void * data1)
{
	static PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC_HPP>(_impl::_get_proc_address("glCompressedTexSubImage2DARB","GL_ARB_texture_compression"));
	 fn(target1,level1,xoffset1,yoffset1,width1,height1,format1,imageSize1,data1);
}
typedef void (*PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC_HPP)(GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLsizei,const void *);
static inline void CompressedTexSubImage3DARB(GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLsizei width1,GLsizei height1,GLsizei depth1,GLenum format1,GLsizei imageSize1,const void * data1)
{
	static PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC_HPP>(_impl::_get_proc_address("glCompressedTexSubImage3DARB","GL_ARB_texture_compression"));
	 fn(target1,level1,xoffset1,yoffset1,zoffset1,width1,height1,depth1,format1,imageSize1,data1);
}
typedef void (*PFNGLGETCOMPRESSEDTEXIMAGEARBPROC_HPP)(GLenum,GLint,void *);
static inline void GetCompressedTexImageARB(GLenum target1,GLint level1,void * img1)
{
	static PFNGLGETCOMPRESSEDTEXIMAGEARBPROC_HPP fn=reinterpret_cast<PFNGLGETCOMPRESSEDTEXIMAGEARBPROC_HPP>(_impl::_get_proc_address("glGetCompressedTexImageARB","GL_ARB_texture_compression"));
	 fn(target1,level1,img1);
}}
#endif

#ifndef GL_ARB_texture_compression_bptc
#define GL_ARB_texture_compression_bptc
#ifndef GL_COMPRESSED_RGBA_BPTC_UNORM_ARB
#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C
#endif //GL_COMPRESSED_RGBA_BPTC_UNORM_ARB
#ifndef GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB
#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D
#endif //GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB
#ifndef GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB
#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E
#endif //GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB
#ifndef GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB
#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F
#endif //GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_compression_rgtc
#define GL_ARB_texture_compression_rgtc
#ifndef GL_COMPRESSED_RED_RGTC1
#define GL_COMPRESSED_RED_RGTC1 0x8DBB
#endif //GL_COMPRESSED_RED_RGTC1
#ifndef GL_COMPRESSED_SIGNED_RED_RGTC1
#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC
#endif //GL_COMPRESSED_SIGNED_RED_RGTC1
#ifndef GL_COMPRESSED_RG_RGTC2
#define GL_COMPRESSED_RG_RGTC2 0x8DBD
#endif //GL_COMPRESSED_RG_RGTC2
#ifndef GL_COMPRESSED_SIGNED_RG_RGTC2
#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE
#endif //GL_COMPRESSED_SIGNED_RG_RGTC2
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_cube_map
#define GL_ARB_texture_cube_map
#ifndef GL_NORMAL_MAP_ARB
#define GL_NORMAL_MAP_ARB 0x8511
#endif //GL_NORMAL_MAP_ARB
#ifndef GL_REFLECTION_MAP_ARB
#define GL_REFLECTION_MAP_ARB 0x8512
#endif //GL_REFLECTION_MAP_ARB
#ifndef GL_TEXTURE_CUBE_MAP_ARB
#define GL_TEXTURE_CUBE_MAP_ARB 0x8513
#endif //GL_TEXTURE_CUBE_MAP_ARB
#ifndef GL_TEXTURE_BINDING_CUBE_MAP_ARB
#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514
#endif //GL_TEXTURE_BINDING_CUBE_MAP_ARB
#ifndef GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515
#endif //GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB
#ifndef GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516
#endif //GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB
#ifndef GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517
#endif //GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB
#ifndef GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518
#endif //GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB
#ifndef GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519
#endif //GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB
#ifndef GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A
#endif //GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB
#ifndef GL_PROXY_TEXTURE_CUBE_MAP_ARB
#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B
#endif //GL_PROXY_TEXTURE_CUBE_MAP_ARB
#ifndef GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C
#endif //GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_cube_map_array
#define GL_ARB_texture_cube_map_array
#ifndef GL_TEXTURE_CUBE_MAP_ARRAY_ARB
#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009
#endif //GL_TEXTURE_CUBE_MAP_ARRAY_ARB
#ifndef GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB
#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A
#endif //GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB
#ifndef GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB
#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B
#endif //GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB
#ifndef GL_SAMPLER_CUBE_MAP_ARRAY_ARB
#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C
#endif //GL_SAMPLER_CUBE_MAP_ARRAY_ARB
#ifndef GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB
#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D
#endif //GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB
#ifndef GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB
#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E
#endif //GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB
#ifndef GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB
#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F
#endif //GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_env_add
#define GL_ARB_texture_env_add
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_env_combine
#define GL_ARB_texture_env_combine
#ifndef GL_SUBTRACT_ARB
#define GL_SUBTRACT_ARB 0x84E7
#endif //GL_SUBTRACT_ARB
#ifndef GL_COMBINE_ARB
#define GL_COMBINE_ARB 0x8570
#endif //GL_COMBINE_ARB
#ifndef GL_COMBINE_RGB_ARB
#define GL_COMBINE_RGB_ARB 0x8571
#endif //GL_COMBINE_RGB_ARB
#ifndef GL_COMBINE_ALPHA_ARB
#define GL_COMBINE_ALPHA_ARB 0x8572
#endif //GL_COMBINE_ALPHA_ARB
#ifndef GL_RGB_SCALE_ARB
#define GL_RGB_SCALE_ARB 0x8573
#endif //GL_RGB_SCALE_ARB
#ifndef GL_ADD_SIGNED_ARB
#define GL_ADD_SIGNED_ARB 0x8574
#endif //GL_ADD_SIGNED_ARB
#ifndef GL_INTERPOLATE_ARB
#define GL_INTERPOLATE_ARB 0x8575
#endif //GL_INTERPOLATE_ARB
#ifndef GL_CONSTANT_ARB
#define GL_CONSTANT_ARB 0x8576
#endif //GL_CONSTANT_ARB
#ifndef GL_PRIMARY_COLOR_ARB
#define GL_PRIMARY_COLOR_ARB 0x8577
#endif //GL_PRIMARY_COLOR_ARB
#ifndef GL_PREVIOUS_ARB
#define GL_PREVIOUS_ARB 0x8578
#endif //GL_PREVIOUS_ARB
#ifndef GL_SOURCE0_RGB_ARB
#define GL_SOURCE0_RGB_ARB 0x8580
#endif //GL_SOURCE0_RGB_ARB
#ifndef GL_SOURCE1_RGB_ARB
#define GL_SOURCE1_RGB_ARB 0x8581
#endif //GL_SOURCE1_RGB_ARB
#ifndef GL_SOURCE2_RGB_ARB
#define GL_SOURCE2_RGB_ARB 0x8582
#endif //GL_SOURCE2_RGB_ARB
#ifndef GL_SOURCE0_ALPHA_ARB
#define GL_SOURCE0_ALPHA_ARB 0x8588
#endif //GL_SOURCE0_ALPHA_ARB
#ifndef GL_SOURCE1_ALPHA_ARB
#define GL_SOURCE1_ALPHA_ARB 0x8589
#endif //GL_SOURCE1_ALPHA_ARB
#ifndef GL_SOURCE2_ALPHA_ARB
#define GL_SOURCE2_ALPHA_ARB 0x858A
#endif //GL_SOURCE2_ALPHA_ARB
#ifndef GL_OPERAND0_RGB_ARB
#define GL_OPERAND0_RGB_ARB 0x8590
#endif //GL_OPERAND0_RGB_ARB
#ifndef GL_OPERAND1_RGB_ARB
#define GL_OPERAND1_RGB_ARB 0x8591
#endif //GL_OPERAND1_RGB_ARB
#ifndef GL_OPERAND2_RGB_ARB
#define GL_OPERAND2_RGB_ARB 0x8592
#endif //GL_OPERAND2_RGB_ARB
#ifndef GL_OPERAND0_ALPHA_ARB
#define GL_OPERAND0_ALPHA_ARB 0x8598
#endif //GL_OPERAND0_ALPHA_ARB
#ifndef GL_OPERAND1_ALPHA_ARB
#define GL_OPERAND1_ALPHA_ARB 0x8599
#endif //GL_OPERAND1_ALPHA_ARB
#ifndef GL_OPERAND2_ALPHA_ARB
#define GL_OPERAND2_ALPHA_ARB 0x859A
#endif //GL_OPERAND2_ALPHA_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_env_crossbar
#define GL_ARB_texture_env_crossbar
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_env_dot3
#define GL_ARB_texture_env_dot3
#ifndef GL_DOT3_RGB_ARB
#define GL_DOT3_RGB_ARB 0x86AE
#endif //GL_DOT3_RGB_ARB
#ifndef GL_DOT3_RGBA_ARB
#define GL_DOT3_RGBA_ARB 0x86AF
#endif //GL_DOT3_RGBA_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_float
#define GL_ARB_texture_float
#ifndef GL_RGBA32F_ARB
#define GL_RGBA32F_ARB 0x8814
#endif //GL_RGBA32F_ARB
#ifndef GL_RGB32F_ARB
#define GL_RGB32F_ARB 0x8815
#endif //GL_RGB32F_ARB
#ifndef GL_ALPHA32F_ARB
#define GL_ALPHA32F_ARB 0x8816
#endif //GL_ALPHA32F_ARB
#ifndef GL_INTENSITY32F_ARB
#define GL_INTENSITY32F_ARB 0x8817
#endif //GL_INTENSITY32F_ARB
#ifndef GL_LUMINANCE32F_ARB
#define GL_LUMINANCE32F_ARB 0x8818
#endif //GL_LUMINANCE32F_ARB
#ifndef GL_LUMINANCE_ALPHA32F_ARB
#define GL_LUMINANCE_ALPHA32F_ARB 0x8819
#endif //GL_LUMINANCE_ALPHA32F_ARB
#ifndef GL_RGBA16F_ARB
#define GL_RGBA16F_ARB 0x881A
#endif //GL_RGBA16F_ARB
#ifndef GL_RGB16F_ARB
#define GL_RGB16F_ARB 0x881B
#endif //GL_RGB16F_ARB
#ifndef GL_ALPHA16F_ARB
#define GL_ALPHA16F_ARB 0x881C
#endif //GL_ALPHA16F_ARB
#ifndef GL_INTENSITY16F_ARB
#define GL_INTENSITY16F_ARB 0x881D
#endif //GL_INTENSITY16F_ARB
#ifndef GL_LUMINANCE16F_ARB
#define GL_LUMINANCE16F_ARB 0x881E
#endif //GL_LUMINANCE16F_ARB
#ifndef GL_LUMINANCE_ALPHA16F_ARB
#define GL_LUMINANCE_ALPHA16F_ARB 0x881F
#endif //GL_LUMINANCE_ALPHA16F_ARB
#ifndef GL_TEXTURE_RED_TYPE_ARB
#define GL_TEXTURE_RED_TYPE_ARB 0x8C10
#endif //GL_TEXTURE_RED_TYPE_ARB
#ifndef GL_TEXTURE_GREEN_TYPE_ARB
#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11
#endif //GL_TEXTURE_GREEN_TYPE_ARB
#ifndef GL_TEXTURE_BLUE_TYPE_ARB
#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12
#endif //GL_TEXTURE_BLUE_TYPE_ARB
#ifndef GL_TEXTURE_ALPHA_TYPE_ARB
#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13
#endif //GL_TEXTURE_ALPHA_TYPE_ARB
#ifndef GL_TEXTURE_LUMINANCE_TYPE_ARB
#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14
#endif //GL_TEXTURE_LUMINANCE_TYPE_ARB
#ifndef GL_TEXTURE_INTENSITY_TYPE_ARB
#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15
#endif //GL_TEXTURE_INTENSITY_TYPE_ARB
#ifndef GL_TEXTURE_DEPTH_TYPE_ARB
#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16
#endif //GL_TEXTURE_DEPTH_TYPE_ARB
#ifndef GL_UNSIGNED_NORMALIZED_ARB
#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17
#endif //GL_UNSIGNED_NORMALIZED_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_gather
#define GL_ARB_texture_gather
#ifndef GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB
#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E
#endif //GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB
#ifndef GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB
#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F
#endif //GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB
#ifndef GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB
#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F
#endif //GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_mirror_clamp_to_edge
#define GL_ARB_texture_mirror_clamp_to_edge
#ifndef GL_MIRROR_CLAMP_TO_EDGE
#define GL_MIRROR_CLAMP_TO_EDGE 0x8743
#endif //GL_MIRROR_CLAMP_TO_EDGE
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_mirrored_repeat
#define GL_ARB_texture_mirrored_repeat
#ifndef GL_MIRRORED_REPEAT_ARB
#define GL_MIRRORED_REPEAT_ARB 0x8370
#endif //GL_MIRRORED_REPEAT_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_multisample
#define GL_ARB_texture_multisample
#ifndef GL_SAMPLE_POSITION
#define GL_SAMPLE_POSITION 0x8E50
#endif //GL_SAMPLE_POSITION
#ifndef GL_SAMPLE_MASK
#define GL_SAMPLE_MASK 0x8E51
#endif //GL_SAMPLE_MASK
#ifndef GL_SAMPLE_MASK_VALUE
#define GL_SAMPLE_MASK_VALUE 0x8E52
#endif //GL_SAMPLE_MASK_VALUE
#ifndef GL_MAX_SAMPLE_MASK_WORDS
#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
#endif //GL_MAX_SAMPLE_MASK_WORDS
#ifndef GL_TEXTURE_2D_MULTISAMPLE
#define GL_TEXTURE_2D_MULTISAMPLE 0x9100
#endif //GL_TEXTURE_2D_MULTISAMPLE
#ifndef GL_PROXY_TEXTURE_2D_MULTISAMPLE
#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
#endif //GL_PROXY_TEXTURE_2D_MULTISAMPLE
#ifndef GL_TEXTURE_2D_MULTISAMPLE_ARRAY
#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
#endif //GL_TEXTURE_2D_MULTISAMPLE_ARRAY
#ifndef GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY
#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
#endif //GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY
#ifndef GL_TEXTURE_BINDING_2D_MULTISAMPLE
#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
#endif //GL_TEXTURE_BINDING_2D_MULTISAMPLE
#ifndef GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY
#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
#endif //GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY
#ifndef GL_TEXTURE_SAMPLES
#define GL_TEXTURE_SAMPLES 0x9106
#endif //GL_TEXTURE_SAMPLES
#ifndef GL_TEXTURE_FIXED_SAMPLE_LOCATIONS
#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
#endif //GL_TEXTURE_FIXED_SAMPLE_LOCATIONS
#ifndef GL_SAMPLER_2D_MULTISAMPLE
#define GL_SAMPLER_2D_MULTISAMPLE 0x9108
#endif //GL_SAMPLER_2D_MULTISAMPLE
#ifndef GL_INT_SAMPLER_2D_MULTISAMPLE
#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
#endif //GL_INT_SAMPLER_2D_MULTISAMPLE
#ifndef GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE
#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
#endif //GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE
#ifndef GL_SAMPLER_2D_MULTISAMPLE_ARRAY
#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
#endif //GL_SAMPLER_2D_MULTISAMPLE_ARRAY
#ifndef GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
#endif //GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
#ifndef GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
#endif //GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
#ifndef GL_MAX_COLOR_TEXTURE_SAMPLES
#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
#endif //GL_MAX_COLOR_TEXTURE_SAMPLES
#ifndef GL_MAX_DEPTH_TEXTURE_SAMPLES
#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
#endif //GL_MAX_DEPTH_TEXTURE_SAMPLES
#ifndef GL_MAX_INTEGER_SAMPLES
#define GL_MAX_INTEGER_SAMPLES 0x9110
#endif //GL_MAX_INTEGER_SAMPLES
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETMULTISAMPLEFVPROC_HPP)(GLenum,GLuint,GLfloat *);
static inline void GetMultisamplefv(GLenum pname1,GLuint index1,GLfloat * val1)
{
	static PFNGLGETMULTISAMPLEFVPROC_HPP fn=reinterpret_cast<PFNGLGETMULTISAMPLEFVPROC_HPP>(_impl::_get_proc_address("glGetMultisamplefv","GL_ARB_texture_multisample"));
	 fn(pname1,index1,val1);
}
typedef void (*PFNGLSAMPLEMASKIPROC_HPP)(GLuint,GLbitfield);
static inline void SampleMaski(GLuint maskNumber1,GLbitfield mask1)
{
	static PFNGLSAMPLEMASKIPROC_HPP fn=reinterpret_cast<PFNGLSAMPLEMASKIPROC_HPP>(_impl::_get_proc_address("glSampleMaski","GL_ARB_texture_multisample"));
	 fn(maskNumber1,mask1);
}
typedef void (*PFNGLTEXIMAGE2DMULTISAMPLEPROC_HPP)(GLenum,GLsizei,GLenum,GLsizei,GLsizei,GLboolean);
static inline void TexImage2DMultisample(GLenum target1,GLsizei samples1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLboolean fixedsamplelocations1)
{
	static PFNGLTEXIMAGE2DMULTISAMPLEPROC_HPP fn=reinterpret_cast<PFNGLTEXIMAGE2DMULTISAMPLEPROC_HPP>(_impl::_get_proc_address("glTexImage2DMultisample","GL_ARB_texture_multisample"));
	 fn(target1,samples1,internalformat1,width1,height1,fixedsamplelocations1);
}
typedef void (*PFNGLTEXIMAGE3DMULTISAMPLEPROC_HPP)(GLenum,GLsizei,GLenum,GLsizei,GLsizei,GLsizei,GLboolean);
static inline void TexImage3DMultisample(GLenum target1,GLsizei samples1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLsizei depth1,GLboolean fixedsamplelocations1)
{
	static PFNGLTEXIMAGE3DMULTISAMPLEPROC_HPP fn=reinterpret_cast<PFNGLTEXIMAGE3DMULTISAMPLEPROC_HPP>(_impl::_get_proc_address("glTexImage3DMultisample","GL_ARB_texture_multisample"));
	 fn(target1,samples1,internalformat1,width1,height1,depth1,fixedsamplelocations1);
}}
#endif

#ifndef GL_ARB_texture_non_power_of_two
#define GL_ARB_texture_non_power_of_two
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_query_levels
#define GL_ARB_texture_query_levels
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_query_lod
#define GL_ARB_texture_query_lod
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_rectangle
#define GL_ARB_texture_rectangle
#ifndef GL_TEXTURE_RECTANGLE_ARB
#define GL_TEXTURE_RECTANGLE_ARB 0x84F5
#endif //GL_TEXTURE_RECTANGLE_ARB
#ifndef GL_TEXTURE_BINDING_RECTANGLE_ARB
#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6
#endif //GL_TEXTURE_BINDING_RECTANGLE_ARB
#ifndef GL_PROXY_TEXTURE_RECTANGLE_ARB
#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7
#endif //GL_PROXY_TEXTURE_RECTANGLE_ARB
#ifndef GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB
#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8
#endif //GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_rg
#define GL_ARB_texture_rg
#ifndef GL_RG
#define GL_RG 0x8227
#endif //GL_RG
#ifndef GL_RG_INTEGER
#define GL_RG_INTEGER 0x8228
#endif //GL_RG_INTEGER
#ifndef GL_R8
#define GL_R8 0x8229
#endif //GL_R8
#ifndef GL_R16
#define GL_R16 0x822A
#endif //GL_R16
#ifndef GL_RG8
#define GL_RG8 0x822B
#endif //GL_RG8
#ifndef GL_RG16
#define GL_RG16 0x822C
#endif //GL_RG16
#ifndef GL_R16F
#define GL_R16F 0x822D
#endif //GL_R16F
#ifndef GL_R32F
#define GL_R32F 0x822E
#endif //GL_R32F
#ifndef GL_RG16F
#define GL_RG16F 0x822F
#endif //GL_RG16F
#ifndef GL_RG32F
#define GL_RG32F 0x8230
#endif //GL_RG32F
#ifndef GL_R8I
#define GL_R8I 0x8231
#endif //GL_R8I
#ifndef GL_R8UI
#define GL_R8UI 0x8232
#endif //GL_R8UI
#ifndef GL_R16I
#define GL_R16I 0x8233
#endif //GL_R16I
#ifndef GL_R16UI
#define GL_R16UI 0x8234
#endif //GL_R16UI
#ifndef GL_R32I
#define GL_R32I 0x8235
#endif //GL_R32I
#ifndef GL_R32UI
#define GL_R32UI 0x8236
#endif //GL_R32UI
#ifndef GL_RG8I
#define GL_RG8I 0x8237
#endif //GL_RG8I
#ifndef GL_RG8UI
#define GL_RG8UI 0x8238
#endif //GL_RG8UI
#ifndef GL_RG16I
#define GL_RG16I 0x8239
#endif //GL_RG16I
#ifndef GL_RG16UI
#define GL_RG16UI 0x823A
#endif //GL_RG16UI
#ifndef GL_RG32I
#define GL_RG32I 0x823B
#endif //GL_RG32I
#ifndef GL_RG32UI
#define GL_RG32UI 0x823C
#endif //GL_RG32UI
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_rgb10_a2ui
#define GL_ARB_texture_rgb10_a2ui
#ifndef GL_RGB10_A2UI
#define GL_RGB10_A2UI 0x906F
#endif //GL_RGB10_A2UI
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_stencil8
#define GL_ARB_texture_stencil8
#ifndef GL_STENCIL_INDEX
#define GL_STENCIL_INDEX 0x1901
#endif //GL_STENCIL_INDEX
#ifndef GL_STENCIL_INDEX8
#define GL_STENCIL_INDEX8 0x8D48
#endif //GL_STENCIL_INDEX8
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_storage
#define GL_ARB_texture_storage
#ifndef GL_TEXTURE_IMMUTABLE_FORMAT
#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F
#endif //GL_TEXTURE_IMMUTABLE_FORMAT
extern "C" {
}
namespace gl{

typedef void (*PFNGLTEXSTORAGE1DPROC_HPP)(GLenum,GLsizei,GLenum,GLsizei);
static inline void TexStorage1D(GLenum target1,GLsizei levels1,GLenum internalformat1,GLsizei width1)
{
	static PFNGLTEXSTORAGE1DPROC_HPP fn=reinterpret_cast<PFNGLTEXSTORAGE1DPROC_HPP>(_impl::_get_proc_address("glTexStorage1D","GL_ARB_texture_storage"));
	 fn(target1,levels1,internalformat1,width1);
}
typedef void (*PFNGLTEXSTORAGE2DPROC_HPP)(GLenum,GLsizei,GLenum,GLsizei,GLsizei);
static inline void TexStorage2D(GLenum target1,GLsizei levels1,GLenum internalformat1,GLsizei width1,GLsizei height1)
{
	static PFNGLTEXSTORAGE2DPROC_HPP fn=reinterpret_cast<PFNGLTEXSTORAGE2DPROC_HPP>(_impl::_get_proc_address("glTexStorage2D","GL_ARB_texture_storage"));
	 fn(target1,levels1,internalformat1,width1,height1);
}
typedef void (*PFNGLTEXSTORAGE3DPROC_HPP)(GLenum,GLsizei,GLenum,GLsizei,GLsizei,GLsizei);
static inline void TexStorage3D(GLenum target1,GLsizei levels1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLsizei depth1)
{
	static PFNGLTEXSTORAGE3DPROC_HPP fn=reinterpret_cast<PFNGLTEXSTORAGE3DPROC_HPP>(_impl::_get_proc_address("glTexStorage3D","GL_ARB_texture_storage"));
	 fn(target1,levels1,internalformat1,width1,height1,depth1);
}}
#endif

#ifndef GL_ARB_texture_storage_multisample
#define GL_ARB_texture_storage_multisample
extern "C" {
}
namespace gl{

typedef void (*PFNGLTEXSTORAGE2DMULTISAMPLEPROC_HPP)(GLenum,GLsizei,GLenum,GLsizei,GLsizei,GLboolean);
static inline void TexStorage2DMultisample(GLenum target1,GLsizei samples1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLboolean fixedsamplelocations1)
{
	static PFNGLTEXSTORAGE2DMULTISAMPLEPROC_HPP fn=reinterpret_cast<PFNGLTEXSTORAGE2DMULTISAMPLEPROC_HPP>(_impl::_get_proc_address("glTexStorage2DMultisample","GL_ARB_texture_storage_multisample"));
	 fn(target1,samples1,internalformat1,width1,height1,fixedsamplelocations1);
}
typedef void (*PFNGLTEXSTORAGE3DMULTISAMPLEPROC_HPP)(GLenum,GLsizei,GLenum,GLsizei,GLsizei,GLsizei,GLboolean);
static inline void TexStorage3DMultisample(GLenum target1,GLsizei samples1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLsizei depth1,GLboolean fixedsamplelocations1)
{
	static PFNGLTEXSTORAGE3DMULTISAMPLEPROC_HPP fn=reinterpret_cast<PFNGLTEXSTORAGE3DMULTISAMPLEPROC_HPP>(_impl::_get_proc_address("glTexStorage3DMultisample","GL_ARB_texture_storage_multisample"));
	 fn(target1,samples1,internalformat1,width1,height1,depth1,fixedsamplelocations1);
}}
#endif

#ifndef GL_ARB_texture_swizzle
#define GL_ARB_texture_swizzle
#ifndef GL_TEXTURE_SWIZZLE_R
#define GL_TEXTURE_SWIZZLE_R 0x8E42
#endif //GL_TEXTURE_SWIZZLE_R
#ifndef GL_TEXTURE_SWIZZLE_G
#define GL_TEXTURE_SWIZZLE_G 0x8E43
#endif //GL_TEXTURE_SWIZZLE_G
#ifndef GL_TEXTURE_SWIZZLE_B
#define GL_TEXTURE_SWIZZLE_B 0x8E44
#endif //GL_TEXTURE_SWIZZLE_B
#ifndef GL_TEXTURE_SWIZZLE_A
#define GL_TEXTURE_SWIZZLE_A 0x8E45
#endif //GL_TEXTURE_SWIZZLE_A
#ifndef GL_TEXTURE_SWIZZLE_RGBA
#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46
#endif //GL_TEXTURE_SWIZZLE_RGBA
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_texture_view
#define GL_ARB_texture_view
#ifndef GL_TEXTURE_VIEW_MIN_LEVEL
#define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB
#endif //GL_TEXTURE_VIEW_MIN_LEVEL
#ifndef GL_TEXTURE_VIEW_NUM_LEVELS
#define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC
#endif //GL_TEXTURE_VIEW_NUM_LEVELS
#ifndef GL_TEXTURE_VIEW_MIN_LAYER
#define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD
#endif //GL_TEXTURE_VIEW_MIN_LAYER
#ifndef GL_TEXTURE_VIEW_NUM_LAYERS
#define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE
#endif //GL_TEXTURE_VIEW_NUM_LAYERS
#ifndef GL_TEXTURE_IMMUTABLE_LEVELS
#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
#endif //GL_TEXTURE_IMMUTABLE_LEVELS
extern "C" {
}
namespace gl{

typedef void (*PFNGLTEXTUREVIEWPROC_HPP)(GLuint,GLenum,GLuint,GLenum,GLuint,GLuint,GLuint,GLuint);
static inline void TextureView(GLuint texture1,GLenum target1,GLuint origtexture1,GLenum internalformat1,GLuint minlevel1,GLuint numlevels1,GLuint minlayer1,GLuint numlayers1)
{
	static PFNGLTEXTUREVIEWPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREVIEWPROC_HPP>(_impl::_get_proc_address("glTextureView","GL_ARB_texture_view"));
	 fn(texture1,target1,origtexture1,internalformat1,minlevel1,numlevels1,minlayer1,numlayers1);
}}
#endif

#ifndef GL_ARB_timer_query
#define GL_ARB_timer_query
#ifndef GL_TIME_ELAPSED
#define GL_TIME_ELAPSED 0x88BF
#endif //GL_TIME_ELAPSED
#ifndef GL_TIMESTAMP
#define GL_TIMESTAMP 0x8E28
#endif //GL_TIMESTAMP
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETQUERYOBJECTI64VPROC_HPP)(GLuint,GLenum,GLint64 *);
static inline void GetQueryObjecti64v(GLuint id1,GLenum pname1,GLint64 * params1)
{
	static PFNGLGETQUERYOBJECTI64VPROC_HPP fn=reinterpret_cast<PFNGLGETQUERYOBJECTI64VPROC_HPP>(_impl::_get_proc_address("glGetQueryObjecti64v","GL_ARB_timer_query"));
	 fn(id1,pname1,params1);
}
typedef void (*PFNGLGETQUERYOBJECTUI64VPROC_HPP)(GLuint,GLenum,GLuint64 *);
static inline void GetQueryObjectui64v(GLuint id1,GLenum pname1,GLuint64 * params1)
{
	static PFNGLGETQUERYOBJECTUI64VPROC_HPP fn=reinterpret_cast<PFNGLGETQUERYOBJECTUI64VPROC_HPP>(_impl::_get_proc_address("glGetQueryObjectui64v","GL_ARB_timer_query"));
	 fn(id1,pname1,params1);
}
typedef void (*PFNGLQUERYCOUNTERPROC_HPP)(GLuint,GLenum);
static inline void QueryCounter(GLuint id1,GLenum target1)
{
	static PFNGLQUERYCOUNTERPROC_HPP fn=reinterpret_cast<PFNGLQUERYCOUNTERPROC_HPP>(_impl::_get_proc_address("glQueryCounter","GL_ARB_timer_query"));
	 fn(id1,target1);
}}
#endif

#ifndef GL_ARB_transform_feedback2
#define GL_ARB_transform_feedback2
#ifndef GL_TRANSFORM_FEEDBACK
#define GL_TRANSFORM_FEEDBACK 0x8E22
#endif //GL_TRANSFORM_FEEDBACK
#ifndef GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED
#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23
#endif //GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED
#ifndef GL_TRANSFORM_FEEDBACK_PAUSED
#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23
#endif //GL_TRANSFORM_FEEDBACK_PAUSED
#ifndef GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE
#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24
#endif //GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE
#ifndef GL_TRANSFORM_FEEDBACK_ACTIVE
#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24
#endif //GL_TRANSFORM_FEEDBACK_ACTIVE
#ifndef GL_TRANSFORM_FEEDBACK_BINDING
#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25
#endif //GL_TRANSFORM_FEEDBACK_BINDING
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDTRANSFORMFEEDBACKPROC_HPP)(GLenum,GLuint);
static inline void BindTransformFeedback(GLenum target1,GLuint id1)
{
	static PFNGLBINDTRANSFORMFEEDBACKPROC_HPP fn=reinterpret_cast<PFNGLBINDTRANSFORMFEEDBACKPROC_HPP>(_impl::_get_proc_address("glBindTransformFeedback","GL_ARB_transform_feedback2"));
	 fn(target1,id1);
}
typedef void (*PFNGLDELETETRANSFORMFEEDBACKSPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteTransformFeedbacks(GLsizei n1,const GLuint * ids1)
{
	static PFNGLDELETETRANSFORMFEEDBACKSPROC_HPP fn=reinterpret_cast<PFNGLDELETETRANSFORMFEEDBACKSPROC_HPP>(_impl::_get_proc_address("glDeleteTransformFeedbacks","GL_ARB_transform_feedback2"));
	 fn(n1,ids1);
}
typedef void (*PFNGLDRAWTRANSFORMFEEDBACKPROC_HPP)(GLenum,GLuint);
static inline void DrawTransformFeedback(GLenum mode1,GLuint id1)
{
	static PFNGLDRAWTRANSFORMFEEDBACKPROC_HPP fn=reinterpret_cast<PFNGLDRAWTRANSFORMFEEDBACKPROC_HPP>(_impl::_get_proc_address("glDrawTransformFeedback","GL_ARB_transform_feedback2"));
	 fn(mode1,id1);
}
typedef void (*PFNGLGENTRANSFORMFEEDBACKSPROC_HPP)(GLsizei,GLuint *);
static inline void GenTransformFeedbacks(GLsizei n1,GLuint * ids1)
{
	static PFNGLGENTRANSFORMFEEDBACKSPROC_HPP fn=reinterpret_cast<PFNGLGENTRANSFORMFEEDBACKSPROC_HPP>(_impl::_get_proc_address("glGenTransformFeedbacks","GL_ARB_transform_feedback2"));
	 fn(n1,ids1);
}
typedef GLboolean (*PFNGLISTRANSFORMFEEDBACKPROC_HPP)(GLuint);
static inline GLboolean IsTransformFeedback(GLuint id1)
{
	static PFNGLISTRANSFORMFEEDBACKPROC_HPP fn=reinterpret_cast<PFNGLISTRANSFORMFEEDBACKPROC_HPP>(_impl::_get_proc_address("glIsTransformFeedback","GL_ARB_transform_feedback2"));
	return fn(id1);
}
typedef void (*PFNGLPAUSETRANSFORMFEEDBACKPROC_HPP)();
static inline void PauseTransformFeedback()
{
	static PFNGLPAUSETRANSFORMFEEDBACKPROC_HPP fn=reinterpret_cast<PFNGLPAUSETRANSFORMFEEDBACKPROC_HPP>(_impl::_get_proc_address("glPauseTransformFeedback","GL_ARB_transform_feedback2"));
	 fn();
}
typedef void (*PFNGLRESUMETRANSFORMFEEDBACKPROC_HPP)();
static inline void ResumeTransformFeedback()
{
	static PFNGLRESUMETRANSFORMFEEDBACKPROC_HPP fn=reinterpret_cast<PFNGLRESUMETRANSFORMFEEDBACKPROC_HPP>(_impl::_get_proc_address("glResumeTransformFeedback","GL_ARB_transform_feedback2"));
	 fn();
}}
#endif

#ifndef GL_ARB_transform_feedback3
#define GL_ARB_transform_feedback3
#ifndef GL_MAX_TRANSFORM_FEEDBACK_BUFFERS
#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70
#endif //GL_MAX_TRANSFORM_FEEDBACK_BUFFERS
#ifndef GL_MAX_VERTEX_STREAMS
#define GL_MAX_VERTEX_STREAMS 0x8E71
#endif //GL_MAX_VERTEX_STREAMS
extern "C" {
}
namespace gl{

typedef void (*PFNGLBEGINQUERYINDEXEDPROC_HPP)(GLenum,GLuint,GLuint);
static inline void BeginQueryIndexed(GLenum target1,GLuint index1,GLuint id1)
{
	static PFNGLBEGINQUERYINDEXEDPROC_HPP fn=reinterpret_cast<PFNGLBEGINQUERYINDEXEDPROC_HPP>(_impl::_get_proc_address("glBeginQueryIndexed","GL_ARB_transform_feedback3"));
	 fn(target1,index1,id1);
}
typedef void (*PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC_HPP)(GLenum,GLuint,GLuint);
static inline void DrawTransformFeedbackStream(GLenum mode1,GLuint id1,GLuint stream1)
{
	static PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC_HPP fn=reinterpret_cast<PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC_HPP>(_impl::_get_proc_address("glDrawTransformFeedbackStream","GL_ARB_transform_feedback3"));
	 fn(mode1,id1,stream1);
}
typedef void (*PFNGLENDQUERYINDEXEDPROC_HPP)(GLenum,GLuint);
static inline void EndQueryIndexed(GLenum target1,GLuint index1)
{
	static PFNGLENDQUERYINDEXEDPROC_HPP fn=reinterpret_cast<PFNGLENDQUERYINDEXEDPROC_HPP>(_impl::_get_proc_address("glEndQueryIndexed","GL_ARB_transform_feedback3"));
	 fn(target1,index1);
}
typedef void (*PFNGLGETQUERYINDEXEDIVPROC_HPP)(GLenum,GLuint,GLenum,GLint *);
static inline void GetQueryIndexediv(GLenum target1,GLuint index1,GLenum pname1,GLint * params1)
{
	static PFNGLGETQUERYINDEXEDIVPROC_HPP fn=reinterpret_cast<PFNGLGETQUERYINDEXEDIVPROC_HPP>(_impl::_get_proc_address("glGetQueryIndexediv","GL_ARB_transform_feedback3"));
	 fn(target1,index1,pname1,params1);
}}
#endif

#ifndef GL_ARB_transform_feedback_instanced
#define GL_ARB_transform_feedback_instanced
extern "C" {
}
namespace gl{

typedef void (*PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC_HPP)(GLenum,GLuint,GLsizei);
static inline void DrawTransformFeedbackInstanced(GLenum mode1,GLuint id1,GLsizei instancecount1)
{
	static PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC_HPP fn=reinterpret_cast<PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC_HPP>(_impl::_get_proc_address("glDrawTransformFeedbackInstanced","GL_ARB_transform_feedback_instanced"));
	 fn(mode1,id1,instancecount1);
}
typedef void (*PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC_HPP)(GLenum,GLuint,GLuint,GLsizei);
static inline void DrawTransformFeedbackStreamInstanced(GLenum mode1,GLuint id1,GLuint stream1,GLsizei instancecount1)
{
	static PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC_HPP fn=reinterpret_cast<PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC_HPP>(_impl::_get_proc_address("glDrawTransformFeedbackStreamInstanced","GL_ARB_transform_feedback_instanced"));
	 fn(mode1,id1,stream1,instancecount1);
}}
#endif

#ifndef GL_ARB_transform_feedback_overflow_query
#define GL_ARB_transform_feedback_overflow_query
#ifndef GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB
#define GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB 0x82EC
#endif //GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB
#ifndef GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB
#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB 0x82ED
#endif //GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_transpose_matrix
#define GL_ARB_transpose_matrix
#ifndef GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3
#endif //GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
#ifndef GL_TRANSPOSE_PROJECTION_MATRIX_ARB
#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4
#endif //GL_TRANSPOSE_PROJECTION_MATRIX_ARB
#ifndef GL_TRANSPOSE_TEXTURE_MATRIX_ARB
#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5
#endif //GL_TRANSPOSE_TEXTURE_MATRIX_ARB
#ifndef GL_TRANSPOSE_COLOR_MATRIX_ARB
#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6
#endif //GL_TRANSPOSE_COLOR_MATRIX_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLLOADTRANSPOSEMATRIXDARBPROC_HPP)(const GLdouble *);
static inline void LoadTransposeMatrixdARB(const GLdouble * m1)
{
	static PFNGLLOADTRANSPOSEMATRIXDARBPROC_HPP fn=reinterpret_cast<PFNGLLOADTRANSPOSEMATRIXDARBPROC_HPP>(_impl::_get_proc_address("glLoadTransposeMatrixdARB","GL_ARB_transpose_matrix"));
	 fn(m1);
}
typedef void (*PFNGLLOADTRANSPOSEMATRIXFARBPROC_HPP)(const GLfloat *);
static inline void LoadTransposeMatrixfARB(const GLfloat * m1)
{
	static PFNGLLOADTRANSPOSEMATRIXFARBPROC_HPP fn=reinterpret_cast<PFNGLLOADTRANSPOSEMATRIXFARBPROC_HPP>(_impl::_get_proc_address("glLoadTransposeMatrixfARB","GL_ARB_transpose_matrix"));
	 fn(m1);
}
typedef void (*PFNGLMULTTRANSPOSEMATRIXDARBPROC_HPP)(const GLdouble *);
static inline void MultTransposeMatrixdARB(const GLdouble * m1)
{
	static PFNGLMULTTRANSPOSEMATRIXDARBPROC_HPP fn=reinterpret_cast<PFNGLMULTTRANSPOSEMATRIXDARBPROC_HPP>(_impl::_get_proc_address("glMultTransposeMatrixdARB","GL_ARB_transpose_matrix"));
	 fn(m1);
}
typedef void (*PFNGLMULTTRANSPOSEMATRIXFARBPROC_HPP)(const GLfloat *);
static inline void MultTransposeMatrixfARB(const GLfloat * m1)
{
	static PFNGLMULTTRANSPOSEMATRIXFARBPROC_HPP fn=reinterpret_cast<PFNGLMULTTRANSPOSEMATRIXFARBPROC_HPP>(_impl::_get_proc_address("glMultTransposeMatrixfARB","GL_ARB_transpose_matrix"));
	 fn(m1);
}}
#endif

#ifndef GL_ARB_uniform_buffer_object
#define GL_ARB_uniform_buffer_object
#ifndef GL_UNIFORM_BUFFER
#define GL_UNIFORM_BUFFER 0x8A11
#endif //GL_UNIFORM_BUFFER
#ifndef GL_UNIFORM_BUFFER_BINDING
#define GL_UNIFORM_BUFFER_BINDING 0x8A28
#endif //GL_UNIFORM_BUFFER_BINDING
#ifndef GL_UNIFORM_BUFFER_START
#define GL_UNIFORM_BUFFER_START 0x8A29
#endif //GL_UNIFORM_BUFFER_START
#ifndef GL_UNIFORM_BUFFER_SIZE
#define GL_UNIFORM_BUFFER_SIZE 0x8A2A
#endif //GL_UNIFORM_BUFFER_SIZE
#ifndef GL_MAX_VERTEX_UNIFORM_BLOCKS
#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
#endif //GL_MAX_VERTEX_UNIFORM_BLOCKS
#ifndef GL_MAX_GEOMETRY_UNIFORM_BLOCKS
#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C
#endif //GL_MAX_GEOMETRY_UNIFORM_BLOCKS
#ifndef GL_MAX_FRAGMENT_UNIFORM_BLOCKS
#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
#endif //GL_MAX_FRAGMENT_UNIFORM_BLOCKS
#ifndef GL_MAX_COMBINED_UNIFORM_BLOCKS
#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
#endif //GL_MAX_COMBINED_UNIFORM_BLOCKS
#ifndef GL_MAX_UNIFORM_BUFFER_BINDINGS
#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
#endif //GL_MAX_UNIFORM_BUFFER_BINDINGS
#ifndef GL_MAX_UNIFORM_BLOCK_SIZE
#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
#endif //GL_MAX_UNIFORM_BLOCK_SIZE
#ifndef GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS
#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
#endif //GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS
#ifndef GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS
#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32
#endif //GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS
#ifndef GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS
#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
#endif //GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS
#ifndef GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT
#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
#endif //GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT
#ifndef GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH
#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
#endif //GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH
#ifndef GL_ACTIVE_UNIFORM_BLOCKS
#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36
#endif //GL_ACTIVE_UNIFORM_BLOCKS
#ifndef GL_UNIFORM_TYPE
#define GL_UNIFORM_TYPE 0x8A37
#endif //GL_UNIFORM_TYPE
#ifndef GL_UNIFORM_SIZE
#define GL_UNIFORM_SIZE 0x8A38
#endif //GL_UNIFORM_SIZE
#ifndef GL_UNIFORM_NAME_LENGTH
#define GL_UNIFORM_NAME_LENGTH 0x8A39
#endif //GL_UNIFORM_NAME_LENGTH
#ifndef GL_UNIFORM_BLOCK_INDEX
#define GL_UNIFORM_BLOCK_INDEX 0x8A3A
#endif //GL_UNIFORM_BLOCK_INDEX
#ifndef GL_UNIFORM_OFFSET
#define GL_UNIFORM_OFFSET 0x8A3B
#endif //GL_UNIFORM_OFFSET
#ifndef GL_UNIFORM_ARRAY_STRIDE
#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C
#endif //GL_UNIFORM_ARRAY_STRIDE
#ifndef GL_UNIFORM_MATRIX_STRIDE
#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D
#endif //GL_UNIFORM_MATRIX_STRIDE
#ifndef GL_UNIFORM_IS_ROW_MAJOR
#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E
#endif //GL_UNIFORM_IS_ROW_MAJOR
#ifndef GL_UNIFORM_BLOCK_BINDING
#define GL_UNIFORM_BLOCK_BINDING 0x8A3F
#endif //GL_UNIFORM_BLOCK_BINDING
#ifndef GL_UNIFORM_BLOCK_DATA_SIZE
#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40
#endif //GL_UNIFORM_BLOCK_DATA_SIZE
#ifndef GL_UNIFORM_BLOCK_NAME_LENGTH
#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41
#endif //GL_UNIFORM_BLOCK_NAME_LENGTH
#ifndef GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS
#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
#endif //GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS
#ifndef GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES
#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
#endif //GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES
#ifndef GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER
#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
#endif //GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER
#ifndef GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER
#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45
#endif //GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER
#ifndef GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER
#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
#endif //GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER
#ifndef GL_INVALID_INDEX
#define GL_INVALID_INDEX 0xFFFFFFFF
#endif //GL_INVALID_INDEX
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC_HPP)(GLuint,GLuint,GLsizei,GLsizei *,GLchar *);
static inline void GetActiveUniformBlockName(GLuint program1,GLuint uniformBlockIndex1,GLsizei bufSize1,GLsizei * length1,GLchar * uniformBlockName1)
{
	static PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC_HPP fn=reinterpret_cast<PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC_HPP>(_impl::_get_proc_address("glGetActiveUniformBlockName","GL_ARB_uniform_buffer_object"));
	 fn(program1,uniformBlockIndex1,bufSize1,length1,uniformBlockName1);
}
typedef void (*PFNGLGETACTIVEUNIFORMBLOCKIVPROC_HPP)(GLuint,GLuint,GLenum,GLint *);
static inline void GetActiveUniformBlockiv(GLuint program1,GLuint uniformBlockIndex1,GLenum pname1,GLint * params1)
{
	static PFNGLGETACTIVEUNIFORMBLOCKIVPROC_HPP fn=reinterpret_cast<PFNGLGETACTIVEUNIFORMBLOCKIVPROC_HPP>(_impl::_get_proc_address("glGetActiveUniformBlockiv","GL_ARB_uniform_buffer_object"));
	 fn(program1,uniformBlockIndex1,pname1,params1);
}
typedef void (*PFNGLGETACTIVEUNIFORMNAMEPROC_HPP)(GLuint,GLuint,GLsizei,GLsizei *,GLchar *);
static inline void GetActiveUniformName(GLuint program1,GLuint uniformIndex1,GLsizei bufSize1,GLsizei * length1,GLchar * uniformName1)
{
	static PFNGLGETACTIVEUNIFORMNAMEPROC_HPP fn=reinterpret_cast<PFNGLGETACTIVEUNIFORMNAMEPROC_HPP>(_impl::_get_proc_address("glGetActiveUniformName","GL_ARB_uniform_buffer_object"));
	 fn(program1,uniformIndex1,bufSize1,length1,uniformName1);
}
typedef void (*PFNGLGETACTIVEUNIFORMSIVPROC_HPP)(GLuint,GLsizei,const GLuint *,GLenum,GLint *);
static inline void GetActiveUniformsiv(GLuint program1,GLsizei uniformCount1,const GLuint * uniformIndices1,GLenum pname1,GLint * params1)
{
	static PFNGLGETACTIVEUNIFORMSIVPROC_HPP fn=reinterpret_cast<PFNGLGETACTIVEUNIFORMSIVPROC_HPP>(_impl::_get_proc_address("glGetActiveUniformsiv","GL_ARB_uniform_buffer_object"));
	 fn(program1,uniformCount1,uniformIndices1,pname1,params1);
}
typedef GLuint (*PFNGLGETUNIFORMBLOCKINDEXPROC_HPP)(GLuint,const GLchar *);
static inline GLuint GetUniformBlockIndex(GLuint program1,const GLchar * uniformBlockName1)
{
	static PFNGLGETUNIFORMBLOCKINDEXPROC_HPP fn=reinterpret_cast<PFNGLGETUNIFORMBLOCKINDEXPROC_HPP>(_impl::_get_proc_address("glGetUniformBlockIndex","GL_ARB_uniform_buffer_object"));
	return fn(program1,uniformBlockName1);
}
typedef void (*PFNGLGETUNIFORMINDICESPROC_HPP)(GLuint,GLsizei,const GLchar *const*,GLuint *);
static inline void GetUniformIndices(GLuint program1,GLsizei uniformCount1,const GLchar *const* uniformNames1,GLuint * uniformIndices1)
{
	static PFNGLGETUNIFORMINDICESPROC_HPP fn=reinterpret_cast<PFNGLGETUNIFORMINDICESPROC_HPP>(_impl::_get_proc_address("glGetUniformIndices","GL_ARB_uniform_buffer_object"));
	 fn(program1,uniformCount1,uniformNames1,uniformIndices1);
}
typedef void (*PFNGLUNIFORMBLOCKBINDINGPROC_HPP)(GLuint,GLuint,GLuint);
static inline void UniformBlockBinding(GLuint program1,GLuint uniformBlockIndex1,GLuint uniformBlockBinding1)
{
	static PFNGLUNIFORMBLOCKBINDINGPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMBLOCKBINDINGPROC_HPP>(_impl::_get_proc_address("glUniformBlockBinding","GL_ARB_uniform_buffer_object"));
	 fn(program1,uniformBlockIndex1,uniformBlockBinding1);
}}
#endif

#ifndef GL_ARB_vertex_array_bgra
#define GL_ARB_vertex_array_bgra
#ifndef GL_BGRA
#define GL_BGRA 0x80E1
#endif //GL_BGRA
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_vertex_array_object
#define GL_ARB_vertex_array_object
#ifndef GL_VERTEX_ARRAY_BINDING
#define GL_VERTEX_ARRAY_BINDING 0x85B5
#endif //GL_VERTEX_ARRAY_BINDING
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDVERTEXARRAYPROC_HPP)(GLuint);
static inline void BindVertexArray(GLuint array1)
{
	static PFNGLBINDVERTEXARRAYPROC_HPP fn=reinterpret_cast<PFNGLBINDVERTEXARRAYPROC_HPP>(_impl::_get_proc_address("glBindVertexArray","GL_ARB_vertex_array_object"));
	 fn(array1);
}
typedef void (*PFNGLDELETEVERTEXARRAYSPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteVertexArrays(GLsizei n1,const GLuint * arrays1)
{
	static PFNGLDELETEVERTEXARRAYSPROC_HPP fn=reinterpret_cast<PFNGLDELETEVERTEXARRAYSPROC_HPP>(_impl::_get_proc_address("glDeleteVertexArrays","GL_ARB_vertex_array_object"));
	 fn(n1,arrays1);
}
typedef void (*PFNGLGENVERTEXARRAYSPROC_HPP)(GLsizei,GLuint *);
static inline void GenVertexArrays(GLsizei n1,GLuint * arrays1)
{
	static PFNGLGENVERTEXARRAYSPROC_HPP fn=reinterpret_cast<PFNGLGENVERTEXARRAYSPROC_HPP>(_impl::_get_proc_address("glGenVertexArrays","GL_ARB_vertex_array_object"));
	 fn(n1,arrays1);
}
typedef GLboolean (*PFNGLISVERTEXARRAYPROC_HPP)(GLuint);
static inline GLboolean IsVertexArray(GLuint array1)
{
	static PFNGLISVERTEXARRAYPROC_HPP fn=reinterpret_cast<PFNGLISVERTEXARRAYPROC_HPP>(_impl::_get_proc_address("glIsVertexArray","GL_ARB_vertex_array_object"));
	return fn(array1);
}}
#endif

#ifndef GL_ARB_vertex_attrib_64bit
#define GL_ARB_vertex_attrib_64bit
#ifndef GL_RGB32I
#define GL_RGB32I 0x8D83
#endif //GL_RGB32I
#ifndef GL_DOUBLE_MAT2
#define GL_DOUBLE_MAT2 0x8F46
#endif //GL_DOUBLE_MAT2
#ifndef GL_DOUBLE_MAT3
#define GL_DOUBLE_MAT3 0x8F47
#endif //GL_DOUBLE_MAT3
#ifndef GL_DOUBLE_MAT4
#define GL_DOUBLE_MAT4 0x8F48
#endif //GL_DOUBLE_MAT4
#ifndef GL_DOUBLE_MAT2x3
#define GL_DOUBLE_MAT2x3 0x8F49
#endif //GL_DOUBLE_MAT2x3
#ifndef GL_DOUBLE_MAT2x4
#define GL_DOUBLE_MAT2x4 0x8F4A
#endif //GL_DOUBLE_MAT2x4
#ifndef GL_DOUBLE_MAT3x2
#define GL_DOUBLE_MAT3x2 0x8F4B
#endif //GL_DOUBLE_MAT3x2
#ifndef GL_DOUBLE_MAT3x4
#define GL_DOUBLE_MAT3x4 0x8F4C
#endif //GL_DOUBLE_MAT3x4
#ifndef GL_DOUBLE_MAT4x2
#define GL_DOUBLE_MAT4x2 0x8F4D
#endif //GL_DOUBLE_MAT4x2
#ifndef GL_DOUBLE_MAT4x3
#define GL_DOUBLE_MAT4x3 0x8F4E
#endif //GL_DOUBLE_MAT4x3
#ifndef GL_DOUBLE_VEC2
#define GL_DOUBLE_VEC2 0x8FFC
#endif //GL_DOUBLE_VEC2
#ifndef GL_DOUBLE_VEC3
#define GL_DOUBLE_VEC3 0x8FFD
#endif //GL_DOUBLE_VEC3
#ifndef GL_DOUBLE_VEC4
#define GL_DOUBLE_VEC4 0x8FFE
#endif //GL_DOUBLE_VEC4
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETVERTEXATTRIBLDVPROC_HPP)(GLuint,GLenum,GLdouble *);
static inline void GetVertexAttribLdv(GLuint index1,GLenum pname1,GLdouble * params1)
{
	static PFNGLGETVERTEXATTRIBLDVPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBLDVPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribLdv","GL_ARB_vertex_attrib_64bit"));
	 fn(index1,pname1,params1);
}
typedef void (*PFNGLVERTEXATTRIBL1DPROC_HPP)(GLuint,GLdouble);
static inline void VertexAttribL1d(GLuint index1,GLdouble x1)
{
	static PFNGLVERTEXATTRIBL1DPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL1DPROC_HPP>(_impl::_get_proc_address("glVertexAttribL1d","GL_ARB_vertex_attrib_64bit"));
	 fn(index1,x1);
}
typedef void (*PFNGLVERTEXATTRIBL1DVPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttribL1dv(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIBL1DVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL1DVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL1dv","GL_ARB_vertex_attrib_64bit"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBL2DPROC_HPP)(GLuint,GLdouble,GLdouble);
static inline void VertexAttribL2d(GLuint index1,GLdouble x1,GLdouble y1)
{
	static PFNGLVERTEXATTRIBL2DPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL2DPROC_HPP>(_impl::_get_proc_address("glVertexAttribL2d","GL_ARB_vertex_attrib_64bit"));
	 fn(index1,x1,y1);
}
typedef void (*PFNGLVERTEXATTRIBL2DVPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttribL2dv(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIBL2DVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL2DVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL2dv","GL_ARB_vertex_attrib_64bit"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBL3DPROC_HPP)(GLuint,GLdouble,GLdouble,GLdouble);
static inline void VertexAttribL3d(GLuint index1,GLdouble x1,GLdouble y1,GLdouble z1)
{
	static PFNGLVERTEXATTRIBL3DPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL3DPROC_HPP>(_impl::_get_proc_address("glVertexAttribL3d","GL_ARB_vertex_attrib_64bit"));
	 fn(index1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXATTRIBL3DVPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttribL3dv(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIBL3DVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL3DVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL3dv","GL_ARB_vertex_attrib_64bit"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBL4DPROC_HPP)(GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void VertexAttribL4d(GLuint index1,GLdouble x1,GLdouble y1,GLdouble z1,GLdouble w1)
{
	static PFNGLVERTEXATTRIBL4DPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL4DPROC_HPP>(_impl::_get_proc_address("glVertexAttribL4d","GL_ARB_vertex_attrib_64bit"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIBL4DVPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttribL4dv(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIBL4DVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL4DVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL4dv","GL_ARB_vertex_attrib_64bit"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBLPOINTERPROC_HPP)(GLuint,GLint,GLenum,GLsizei,const void *);
static inline void VertexAttribLPointer(GLuint index1,GLint size1,GLenum type1,GLsizei stride1,const void * pointer1)
{
	static PFNGLVERTEXATTRIBLPOINTERPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBLPOINTERPROC_HPP>(_impl::_get_proc_address("glVertexAttribLPointer","GL_ARB_vertex_attrib_64bit"));
	 fn(index1,size1,type1,stride1,pointer1);
}}
#endif

#ifndef GL_ARB_vertex_attrib_binding
#define GL_ARB_vertex_attrib_binding
#ifndef GL_VERTEX_ATTRIB_BINDING
#define GL_VERTEX_ATTRIB_BINDING 0x82D4
#endif //GL_VERTEX_ATTRIB_BINDING
#ifndef GL_VERTEX_ATTRIB_RELATIVE_OFFSET
#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5
#endif //GL_VERTEX_ATTRIB_RELATIVE_OFFSET
#ifndef GL_VERTEX_BINDING_DIVISOR
#define GL_VERTEX_BINDING_DIVISOR 0x82D6
#endif //GL_VERTEX_BINDING_DIVISOR
#ifndef GL_VERTEX_BINDING_OFFSET
#define GL_VERTEX_BINDING_OFFSET 0x82D7
#endif //GL_VERTEX_BINDING_OFFSET
#ifndef GL_VERTEX_BINDING_STRIDE
#define GL_VERTEX_BINDING_STRIDE 0x82D8
#endif //GL_VERTEX_BINDING_STRIDE
#ifndef GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET
#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9
#endif //GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET
#ifndef GL_MAX_VERTEX_ATTRIB_BINDINGS
#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA
#endif //GL_MAX_VERTEX_ATTRIB_BINDINGS
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDVERTEXBUFFERPROC_HPP)(GLuint,GLuint,GLintptr,GLsizei);
static inline void BindVertexBuffer(GLuint bindingindex1,GLuint buffer1,GLintptr offset1,GLsizei stride1)
{
	static PFNGLBINDVERTEXBUFFERPROC_HPP fn=reinterpret_cast<PFNGLBINDVERTEXBUFFERPROC_HPP>(_impl::_get_proc_address("glBindVertexBuffer","GL_ARB_vertex_attrib_binding"));
	 fn(bindingindex1,buffer1,offset1,stride1);
}
typedef void (*PFNGLVERTEXATTRIBBINDINGPROC_HPP)(GLuint,GLuint);
static inline void VertexAttribBinding(GLuint attribindex1,GLuint bindingindex1)
{
	static PFNGLVERTEXATTRIBBINDINGPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBBINDINGPROC_HPP>(_impl::_get_proc_address("glVertexAttribBinding","GL_ARB_vertex_attrib_binding"));
	 fn(attribindex1,bindingindex1);
}
typedef void (*PFNGLVERTEXATTRIBFORMATPROC_HPP)(GLuint,GLint,GLenum,GLboolean,GLuint);
static inline void VertexAttribFormat(GLuint attribindex1,GLint size1,GLenum type1,GLboolean normalized1,GLuint relativeoffset1)
{
	static PFNGLVERTEXATTRIBFORMATPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBFORMATPROC_HPP>(_impl::_get_proc_address("glVertexAttribFormat","GL_ARB_vertex_attrib_binding"));
	 fn(attribindex1,size1,type1,normalized1,relativeoffset1);
}
typedef void (*PFNGLVERTEXATTRIBIFORMATPROC_HPP)(GLuint,GLint,GLenum,GLuint);
static inline void VertexAttribIFormat(GLuint attribindex1,GLint size1,GLenum type1,GLuint relativeoffset1)
{
	static PFNGLVERTEXATTRIBIFORMATPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBIFORMATPROC_HPP>(_impl::_get_proc_address("glVertexAttribIFormat","GL_ARB_vertex_attrib_binding"));
	 fn(attribindex1,size1,type1,relativeoffset1);
}
typedef void (*PFNGLVERTEXATTRIBLFORMATPROC_HPP)(GLuint,GLint,GLenum,GLuint);
static inline void VertexAttribLFormat(GLuint attribindex1,GLint size1,GLenum type1,GLuint relativeoffset1)
{
	static PFNGLVERTEXATTRIBLFORMATPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBLFORMATPROC_HPP>(_impl::_get_proc_address("glVertexAttribLFormat","GL_ARB_vertex_attrib_binding"));
	 fn(attribindex1,size1,type1,relativeoffset1);
}
typedef void (*PFNGLVERTEXBINDINGDIVISORPROC_HPP)(GLuint,GLuint);
static inline void VertexBindingDivisor(GLuint bindingindex1,GLuint divisor1)
{
	static PFNGLVERTEXBINDINGDIVISORPROC_HPP fn=reinterpret_cast<PFNGLVERTEXBINDINGDIVISORPROC_HPP>(_impl::_get_proc_address("glVertexBindingDivisor","GL_ARB_vertex_attrib_binding"));
	 fn(bindingindex1,divisor1);
}}
#endif

#ifndef GL_ARB_vertex_blend
#define GL_ARB_vertex_blend
#ifndef GL_MODELVIEW0_ARB
#define GL_MODELVIEW0_ARB 0x1700
#endif //GL_MODELVIEW0_ARB
#ifndef GL_MODELVIEW1_ARB
#define GL_MODELVIEW1_ARB 0x850A
#endif //GL_MODELVIEW1_ARB
#ifndef GL_MAX_VERTEX_UNITS_ARB
#define GL_MAX_VERTEX_UNITS_ARB 0x86A4
#endif //GL_MAX_VERTEX_UNITS_ARB
#ifndef GL_ACTIVE_VERTEX_UNITS_ARB
#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5
#endif //GL_ACTIVE_VERTEX_UNITS_ARB
#ifndef GL_WEIGHT_SUM_UNITY_ARB
#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6
#endif //GL_WEIGHT_SUM_UNITY_ARB
#ifndef GL_VERTEX_BLEND_ARB
#define GL_VERTEX_BLEND_ARB 0x86A7
#endif //GL_VERTEX_BLEND_ARB
#ifndef GL_CURRENT_WEIGHT_ARB
#define GL_CURRENT_WEIGHT_ARB 0x86A8
#endif //GL_CURRENT_WEIGHT_ARB
#ifndef GL_WEIGHT_ARRAY_TYPE_ARB
#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9
#endif //GL_WEIGHT_ARRAY_TYPE_ARB
#ifndef GL_WEIGHT_ARRAY_STRIDE_ARB
#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA
#endif //GL_WEIGHT_ARRAY_STRIDE_ARB
#ifndef GL_WEIGHT_ARRAY_SIZE_ARB
#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB
#endif //GL_WEIGHT_ARRAY_SIZE_ARB
#ifndef GL_WEIGHT_ARRAY_POINTER_ARB
#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC
#endif //GL_WEIGHT_ARRAY_POINTER_ARB
#ifndef GL_WEIGHT_ARRAY_ARB
#define GL_WEIGHT_ARRAY_ARB 0x86AD
#endif //GL_WEIGHT_ARRAY_ARB
#ifndef GL_MODELVIEW2_ARB
#define GL_MODELVIEW2_ARB 0x8722
#endif //GL_MODELVIEW2_ARB
#ifndef GL_MODELVIEW3_ARB
#define GL_MODELVIEW3_ARB 0x8723
#endif //GL_MODELVIEW3_ARB
#ifndef GL_MODELVIEW4_ARB
#define GL_MODELVIEW4_ARB 0x8724
#endif //GL_MODELVIEW4_ARB
#ifndef GL_MODELVIEW5_ARB
#define GL_MODELVIEW5_ARB 0x8725
#endif //GL_MODELVIEW5_ARB
#ifndef GL_MODELVIEW6_ARB
#define GL_MODELVIEW6_ARB 0x8726
#endif //GL_MODELVIEW6_ARB
#ifndef GL_MODELVIEW7_ARB
#define GL_MODELVIEW7_ARB 0x8727
#endif //GL_MODELVIEW7_ARB
#ifndef GL_MODELVIEW8_ARB
#define GL_MODELVIEW8_ARB 0x8728
#endif //GL_MODELVIEW8_ARB
#ifndef GL_MODELVIEW9_ARB
#define GL_MODELVIEW9_ARB 0x8729
#endif //GL_MODELVIEW9_ARB
#ifndef GL_MODELVIEW10_ARB
#define GL_MODELVIEW10_ARB 0x872A
#endif //GL_MODELVIEW10_ARB
#ifndef GL_MODELVIEW11_ARB
#define GL_MODELVIEW11_ARB 0x872B
#endif //GL_MODELVIEW11_ARB
#ifndef GL_MODELVIEW12_ARB
#define GL_MODELVIEW12_ARB 0x872C
#endif //GL_MODELVIEW12_ARB
#ifndef GL_MODELVIEW13_ARB
#define GL_MODELVIEW13_ARB 0x872D
#endif //GL_MODELVIEW13_ARB
#ifndef GL_MODELVIEW14_ARB
#define GL_MODELVIEW14_ARB 0x872E
#endif //GL_MODELVIEW14_ARB
#ifndef GL_MODELVIEW15_ARB
#define GL_MODELVIEW15_ARB 0x872F
#endif //GL_MODELVIEW15_ARB
#ifndef GL_MODELVIEW16_ARB
#define GL_MODELVIEW16_ARB 0x8730
#endif //GL_MODELVIEW16_ARB
#ifndef GL_MODELVIEW17_ARB
#define GL_MODELVIEW17_ARB 0x8731
#endif //GL_MODELVIEW17_ARB
#ifndef GL_MODELVIEW18_ARB
#define GL_MODELVIEW18_ARB 0x8732
#endif //GL_MODELVIEW18_ARB
#ifndef GL_MODELVIEW19_ARB
#define GL_MODELVIEW19_ARB 0x8733
#endif //GL_MODELVIEW19_ARB
#ifndef GL_MODELVIEW20_ARB
#define GL_MODELVIEW20_ARB 0x8734
#endif //GL_MODELVIEW20_ARB
#ifndef GL_MODELVIEW21_ARB
#define GL_MODELVIEW21_ARB 0x8735
#endif //GL_MODELVIEW21_ARB
#ifndef GL_MODELVIEW22_ARB
#define GL_MODELVIEW22_ARB 0x8736
#endif //GL_MODELVIEW22_ARB
#ifndef GL_MODELVIEW23_ARB
#define GL_MODELVIEW23_ARB 0x8737
#endif //GL_MODELVIEW23_ARB
#ifndef GL_MODELVIEW24_ARB
#define GL_MODELVIEW24_ARB 0x8738
#endif //GL_MODELVIEW24_ARB
#ifndef GL_MODELVIEW25_ARB
#define GL_MODELVIEW25_ARB 0x8739
#endif //GL_MODELVIEW25_ARB
#ifndef GL_MODELVIEW26_ARB
#define GL_MODELVIEW26_ARB 0x873A
#endif //GL_MODELVIEW26_ARB
#ifndef GL_MODELVIEW27_ARB
#define GL_MODELVIEW27_ARB 0x873B
#endif //GL_MODELVIEW27_ARB
#ifndef GL_MODELVIEW28_ARB
#define GL_MODELVIEW28_ARB 0x873C
#endif //GL_MODELVIEW28_ARB
#ifndef GL_MODELVIEW29_ARB
#define GL_MODELVIEW29_ARB 0x873D
#endif //GL_MODELVIEW29_ARB
#ifndef GL_MODELVIEW30_ARB
#define GL_MODELVIEW30_ARB 0x873E
#endif //GL_MODELVIEW30_ARB
#ifndef GL_MODELVIEW31_ARB
#define GL_MODELVIEW31_ARB 0x873F
#endif //GL_MODELVIEW31_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLVERTEXBLENDARBPROC_HPP)(GLint);
static inline void VertexBlendARB(GLint count1)
{
	static PFNGLVERTEXBLENDARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXBLENDARBPROC_HPP>(_impl::_get_proc_address("glVertexBlendARB","GL_ARB_vertex_blend"));
	 fn(count1);
}
typedef void (*PFNGLWEIGHTPOINTERARBPROC_HPP)(GLint,GLenum,GLsizei,const void *);
static inline void WeightPointerARB(GLint size1,GLenum type1,GLsizei stride1,const void * pointer1)
{
	static PFNGLWEIGHTPOINTERARBPROC_HPP fn=reinterpret_cast<PFNGLWEIGHTPOINTERARBPROC_HPP>(_impl::_get_proc_address("glWeightPointerARB","GL_ARB_vertex_blend"));
	 fn(size1,type1,stride1,pointer1);
}
typedef void (*PFNGLWEIGHTBVARBPROC_HPP)(GLint,const GLbyte *);
static inline void WeightbvARB(GLint size1,const GLbyte * weights1)
{
	static PFNGLWEIGHTBVARBPROC_HPP fn=reinterpret_cast<PFNGLWEIGHTBVARBPROC_HPP>(_impl::_get_proc_address("glWeightbvARB","GL_ARB_vertex_blend"));
	 fn(size1,weights1);
}
typedef void (*PFNGLWEIGHTDVARBPROC_HPP)(GLint,const GLdouble *);
static inline void WeightdvARB(GLint size1,const GLdouble * weights1)
{
	static PFNGLWEIGHTDVARBPROC_HPP fn=reinterpret_cast<PFNGLWEIGHTDVARBPROC_HPP>(_impl::_get_proc_address("glWeightdvARB","GL_ARB_vertex_blend"));
	 fn(size1,weights1);
}
typedef void (*PFNGLWEIGHTFVARBPROC_HPP)(GLint,const GLfloat *);
static inline void WeightfvARB(GLint size1,const GLfloat * weights1)
{
	static PFNGLWEIGHTFVARBPROC_HPP fn=reinterpret_cast<PFNGLWEIGHTFVARBPROC_HPP>(_impl::_get_proc_address("glWeightfvARB","GL_ARB_vertex_blend"));
	 fn(size1,weights1);
}
typedef void (*PFNGLWEIGHTIVARBPROC_HPP)(GLint,const GLint *);
static inline void WeightivARB(GLint size1,const GLint * weights1)
{
	static PFNGLWEIGHTIVARBPROC_HPP fn=reinterpret_cast<PFNGLWEIGHTIVARBPROC_HPP>(_impl::_get_proc_address("glWeightivARB","GL_ARB_vertex_blend"));
	 fn(size1,weights1);
}
typedef void (*PFNGLWEIGHTSVARBPROC_HPP)(GLint,const GLshort *);
static inline void WeightsvARB(GLint size1,const GLshort * weights1)
{
	static PFNGLWEIGHTSVARBPROC_HPP fn=reinterpret_cast<PFNGLWEIGHTSVARBPROC_HPP>(_impl::_get_proc_address("glWeightsvARB","GL_ARB_vertex_blend"));
	 fn(size1,weights1);
}
typedef void (*PFNGLWEIGHTUBVARBPROC_HPP)(GLint,const GLubyte *);
static inline void WeightubvARB(GLint size1,const GLubyte * weights1)
{
	static PFNGLWEIGHTUBVARBPROC_HPP fn=reinterpret_cast<PFNGLWEIGHTUBVARBPROC_HPP>(_impl::_get_proc_address("glWeightubvARB","GL_ARB_vertex_blend"));
	 fn(size1,weights1);
}
typedef void (*PFNGLWEIGHTUIVARBPROC_HPP)(GLint,const GLuint *);
static inline void WeightuivARB(GLint size1,const GLuint * weights1)
{
	static PFNGLWEIGHTUIVARBPROC_HPP fn=reinterpret_cast<PFNGLWEIGHTUIVARBPROC_HPP>(_impl::_get_proc_address("glWeightuivARB","GL_ARB_vertex_blend"));
	 fn(size1,weights1);
}
typedef void (*PFNGLWEIGHTUSVARBPROC_HPP)(GLint,const GLushort *);
static inline void WeightusvARB(GLint size1,const GLushort * weights1)
{
	static PFNGLWEIGHTUSVARBPROC_HPP fn=reinterpret_cast<PFNGLWEIGHTUSVARBPROC_HPP>(_impl::_get_proc_address("glWeightusvARB","GL_ARB_vertex_blend"));
	 fn(size1,weights1);
}}
#endif

#ifndef GL_ARB_vertex_buffer_object
#define GL_ARB_vertex_buffer_object
#ifndef GL_BUFFER_SIZE_ARB
#define GL_BUFFER_SIZE_ARB 0x8764
#endif //GL_BUFFER_SIZE_ARB
#ifndef GL_BUFFER_USAGE_ARB
#define GL_BUFFER_USAGE_ARB 0x8765
#endif //GL_BUFFER_USAGE_ARB
#ifndef GL_ARRAY_BUFFER_ARB
#define GL_ARRAY_BUFFER_ARB 0x8892
#endif //GL_ARRAY_BUFFER_ARB
#ifndef GL_ELEMENT_ARRAY_BUFFER_ARB
#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893
#endif //GL_ELEMENT_ARRAY_BUFFER_ARB
#ifndef GL_ARRAY_BUFFER_BINDING_ARB
#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894
#endif //GL_ARRAY_BUFFER_BINDING_ARB
#ifndef GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895
#endif //GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
#ifndef GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896
#endif //GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
#ifndef GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897
#endif //GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
#ifndef GL_COLOR_ARRAY_BUFFER_BINDING_ARB
#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898
#endif //GL_COLOR_ARRAY_BUFFER_BINDING_ARB
#ifndef GL_INDEX_ARRAY_BUFFER_BINDING_ARB
#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899
#endif //GL_INDEX_ARRAY_BUFFER_BINDING_ARB
#ifndef GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A
#endif //GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
#ifndef GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B
#endif //GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
#ifndef GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C
#endif //GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
#ifndef GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D
#endif //GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
#ifndef GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB
#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E
#endif //GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB
#ifndef GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB
#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F
#endif //GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB
#ifndef GL_READ_ONLY_ARB
#define GL_READ_ONLY_ARB 0x88B8
#endif //GL_READ_ONLY_ARB
#ifndef GL_WRITE_ONLY_ARB
#define GL_WRITE_ONLY_ARB 0x88B9
#endif //GL_WRITE_ONLY_ARB
#ifndef GL_READ_WRITE_ARB
#define GL_READ_WRITE_ARB 0x88BA
#endif //GL_READ_WRITE_ARB
#ifndef GL_BUFFER_ACCESS_ARB
#define GL_BUFFER_ACCESS_ARB 0x88BB
#endif //GL_BUFFER_ACCESS_ARB
#ifndef GL_BUFFER_MAPPED_ARB
#define GL_BUFFER_MAPPED_ARB 0x88BC
#endif //GL_BUFFER_MAPPED_ARB
#ifndef GL_BUFFER_MAP_POINTER_ARB
#define GL_BUFFER_MAP_POINTER_ARB 0x88BD
#endif //GL_BUFFER_MAP_POINTER_ARB
#ifndef GL_STREAM_DRAW_ARB
#define GL_STREAM_DRAW_ARB 0x88E0
#endif //GL_STREAM_DRAW_ARB
#ifndef GL_STREAM_READ_ARB
#define GL_STREAM_READ_ARB 0x88E1
#endif //GL_STREAM_READ_ARB
#ifndef GL_STREAM_COPY_ARB
#define GL_STREAM_COPY_ARB 0x88E2
#endif //GL_STREAM_COPY_ARB
#ifndef GL_STATIC_DRAW_ARB
#define GL_STATIC_DRAW_ARB 0x88E4
#endif //GL_STATIC_DRAW_ARB
#ifndef GL_STATIC_READ_ARB
#define GL_STATIC_READ_ARB 0x88E5
#endif //GL_STATIC_READ_ARB
#ifndef GL_STATIC_COPY_ARB
#define GL_STATIC_COPY_ARB 0x88E6
#endif //GL_STATIC_COPY_ARB
#ifndef GL_DYNAMIC_DRAW_ARB
#define GL_DYNAMIC_DRAW_ARB 0x88E8
#endif //GL_DYNAMIC_DRAW_ARB
#ifndef GL_DYNAMIC_READ_ARB
#define GL_DYNAMIC_READ_ARB 0x88E9
#endif //GL_DYNAMIC_READ_ARB
#ifndef GL_DYNAMIC_COPY_ARB
#define GL_DYNAMIC_COPY_ARB 0x88EA
#endif //GL_DYNAMIC_COPY_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDBUFFERARBPROC_HPP)(GLenum,GLuint);
static inline void BindBufferARB(GLenum target1,GLuint buffer1)
{
	static PFNGLBINDBUFFERARBPROC_HPP fn=reinterpret_cast<PFNGLBINDBUFFERARBPROC_HPP>(_impl::_get_proc_address("glBindBufferARB","GL_ARB_vertex_buffer_object"));
	 fn(target1,buffer1);
}
typedef void (*PFNGLBUFFERDATAARBPROC_HPP)(GLenum,GLsizeiptrARB,const void *,GLenum);
static inline void BufferDataARB(GLenum target1,GLsizeiptrARB size1,const void * data1,GLenum usage1)
{
	static PFNGLBUFFERDATAARBPROC_HPP fn=reinterpret_cast<PFNGLBUFFERDATAARBPROC_HPP>(_impl::_get_proc_address("glBufferDataARB","GL_ARB_vertex_buffer_object"));
	 fn(target1,size1,data1,usage1);
}
typedef void (*PFNGLBUFFERSUBDATAARBPROC_HPP)(GLenum,GLintptrARB,GLsizeiptrARB,const void *);
static inline void BufferSubDataARB(GLenum target1,GLintptrARB offset1,GLsizeiptrARB size1,const void * data1)
{
	static PFNGLBUFFERSUBDATAARBPROC_HPP fn=reinterpret_cast<PFNGLBUFFERSUBDATAARBPROC_HPP>(_impl::_get_proc_address("glBufferSubDataARB","GL_ARB_vertex_buffer_object"));
	 fn(target1,offset1,size1,data1);
}
typedef void (*PFNGLDELETEBUFFERSARBPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteBuffersARB(GLsizei n1,const GLuint * buffers1)
{
	static PFNGLDELETEBUFFERSARBPROC_HPP fn=reinterpret_cast<PFNGLDELETEBUFFERSARBPROC_HPP>(_impl::_get_proc_address("glDeleteBuffersARB","GL_ARB_vertex_buffer_object"));
	 fn(n1,buffers1);
}
typedef void (*PFNGLGENBUFFERSARBPROC_HPP)(GLsizei,GLuint *);
static inline void GenBuffersARB(GLsizei n1,GLuint * buffers1)
{
	static PFNGLGENBUFFERSARBPROC_HPP fn=reinterpret_cast<PFNGLGENBUFFERSARBPROC_HPP>(_impl::_get_proc_address("glGenBuffersARB","GL_ARB_vertex_buffer_object"));
	 fn(n1,buffers1);
}
typedef void (*PFNGLGETBUFFERPARAMETERIVARBPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetBufferParameterivARB(GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETBUFFERPARAMETERIVARBPROC_HPP fn=reinterpret_cast<PFNGLGETBUFFERPARAMETERIVARBPROC_HPP>(_impl::_get_proc_address("glGetBufferParameterivARB","GL_ARB_vertex_buffer_object"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETBUFFERPOINTERVARBPROC_HPP)(GLenum,GLenum,void **);
static inline void GetBufferPointervARB(GLenum target1,GLenum pname1,void ** params1)
{
	static PFNGLGETBUFFERPOINTERVARBPROC_HPP fn=reinterpret_cast<PFNGLGETBUFFERPOINTERVARBPROC_HPP>(_impl::_get_proc_address("glGetBufferPointervARB","GL_ARB_vertex_buffer_object"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETBUFFERSUBDATAARBPROC_HPP)(GLenum,GLintptrARB,GLsizeiptrARB,void *);
static inline void GetBufferSubDataARB(GLenum target1,GLintptrARB offset1,GLsizeiptrARB size1,void * data1)
{
	static PFNGLGETBUFFERSUBDATAARBPROC_HPP fn=reinterpret_cast<PFNGLGETBUFFERSUBDATAARBPROC_HPP>(_impl::_get_proc_address("glGetBufferSubDataARB","GL_ARB_vertex_buffer_object"));
	 fn(target1,offset1,size1,data1);
}
typedef GLboolean (*PFNGLISBUFFERARBPROC_HPP)(GLuint);
static inline GLboolean IsBufferARB(GLuint buffer1)
{
	static PFNGLISBUFFERARBPROC_HPP fn=reinterpret_cast<PFNGLISBUFFERARBPROC_HPP>(_impl::_get_proc_address("glIsBufferARB","GL_ARB_vertex_buffer_object"));
	return fn(buffer1);
}
typedef void * (*PFNGLMAPBUFFERARBPROC_HPP)(GLenum,GLenum);
static inline void * MapBufferARB(GLenum target1,GLenum access1)
{
	static PFNGLMAPBUFFERARBPROC_HPP fn=reinterpret_cast<PFNGLMAPBUFFERARBPROC_HPP>(_impl::_get_proc_address("glMapBufferARB","GL_ARB_vertex_buffer_object"));
	return fn(target1,access1);
}
typedef GLboolean (*PFNGLUNMAPBUFFERARBPROC_HPP)(GLenum);
static inline GLboolean UnmapBufferARB(GLenum target1)
{
	static PFNGLUNMAPBUFFERARBPROC_HPP fn=reinterpret_cast<PFNGLUNMAPBUFFERARBPROC_HPP>(_impl::_get_proc_address("glUnmapBufferARB","GL_ARB_vertex_buffer_object"));
	return fn(target1);
}}
#endif

#ifndef GL_ARB_vertex_program
#define GL_ARB_vertex_program
#ifndef GL_COLOR_SUM_ARB
#define GL_COLOR_SUM_ARB 0x8458
#endif //GL_COLOR_SUM_ARB
#ifndef GL_VERTEX_PROGRAM_ARB
#define GL_VERTEX_PROGRAM_ARB 0x8620
#endif //GL_VERTEX_PROGRAM_ARB
#ifndef GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB
#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622
#endif //GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB
#ifndef GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB
#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623
#endif //GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB
#ifndef GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB
#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624
#endif //GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB
#ifndef GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB
#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625
#endif //GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB
#ifndef GL_CURRENT_VERTEX_ATTRIB_ARB
#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626
#endif //GL_CURRENT_VERTEX_ATTRIB_ARB
#ifndef GL_PROGRAM_LENGTH_ARB
#define GL_PROGRAM_LENGTH_ARB 0x8627
#endif //GL_PROGRAM_LENGTH_ARB
#ifndef GL_PROGRAM_STRING_ARB
#define GL_PROGRAM_STRING_ARB 0x8628
#endif //GL_PROGRAM_STRING_ARB
#ifndef GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E
#endif //GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
#ifndef GL_MAX_PROGRAM_MATRICES_ARB
#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F
#endif //GL_MAX_PROGRAM_MATRICES_ARB
#ifndef GL_CURRENT_MATRIX_STACK_DEPTH_ARB
#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640
#endif //GL_CURRENT_MATRIX_STACK_DEPTH_ARB
#ifndef GL_CURRENT_MATRIX_ARB
#define GL_CURRENT_MATRIX_ARB 0x8641
#endif //GL_CURRENT_MATRIX_ARB
#ifndef GL_VERTEX_PROGRAM_POINT_SIZE_ARB
#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642
#endif //GL_VERTEX_PROGRAM_POINT_SIZE_ARB
#ifndef GL_VERTEX_PROGRAM_TWO_SIDE_ARB
#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643
#endif //GL_VERTEX_PROGRAM_TWO_SIDE_ARB
#ifndef GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB
#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645
#endif //GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB
#ifndef GL_PROGRAM_ERROR_POSITION_ARB
#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B
#endif //GL_PROGRAM_ERROR_POSITION_ARB
#ifndef GL_PROGRAM_BINDING_ARB
#define GL_PROGRAM_BINDING_ARB 0x8677
#endif //GL_PROGRAM_BINDING_ARB
#ifndef GL_MAX_VERTEX_ATTRIBS_ARB
#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869
#endif //GL_MAX_VERTEX_ATTRIBS_ARB
#ifndef GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB
#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A
#endif //GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB
#ifndef GL_PROGRAM_ERROR_STRING_ARB
#define GL_PROGRAM_ERROR_STRING_ARB 0x8874
#endif //GL_PROGRAM_ERROR_STRING_ARB
#ifndef GL_PROGRAM_FORMAT_ASCII_ARB
#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875
#endif //GL_PROGRAM_FORMAT_ASCII_ARB
#ifndef GL_PROGRAM_FORMAT_ARB
#define GL_PROGRAM_FORMAT_ARB 0x8876
#endif //GL_PROGRAM_FORMAT_ARB
#ifndef GL_PROGRAM_INSTRUCTIONS_ARB
#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0
#endif //GL_PROGRAM_INSTRUCTIONS_ARB
#ifndef GL_MAX_PROGRAM_INSTRUCTIONS_ARB
#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1
#endif //GL_MAX_PROGRAM_INSTRUCTIONS_ARB
#ifndef GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB
#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2
#endif //GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB
#ifndef GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB
#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3
#endif //GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB
#ifndef GL_PROGRAM_TEMPORARIES_ARB
#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4
#endif //GL_PROGRAM_TEMPORARIES_ARB
#ifndef GL_MAX_PROGRAM_TEMPORARIES_ARB
#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5
#endif //GL_MAX_PROGRAM_TEMPORARIES_ARB
#ifndef GL_PROGRAM_NATIVE_TEMPORARIES_ARB
#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6
#endif //GL_PROGRAM_NATIVE_TEMPORARIES_ARB
#ifndef GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB
#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7
#endif //GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB
#ifndef GL_PROGRAM_PARAMETERS_ARB
#define GL_PROGRAM_PARAMETERS_ARB 0x88A8
#endif //GL_PROGRAM_PARAMETERS_ARB
#ifndef GL_MAX_PROGRAM_PARAMETERS_ARB
#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9
#endif //GL_MAX_PROGRAM_PARAMETERS_ARB
#ifndef GL_PROGRAM_NATIVE_PARAMETERS_ARB
#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA
#endif //GL_PROGRAM_NATIVE_PARAMETERS_ARB
#ifndef GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB
#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB
#endif //GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB
#ifndef GL_PROGRAM_ATTRIBS_ARB
#define GL_PROGRAM_ATTRIBS_ARB 0x88AC
#endif //GL_PROGRAM_ATTRIBS_ARB
#ifndef GL_MAX_PROGRAM_ATTRIBS_ARB
#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD
#endif //GL_MAX_PROGRAM_ATTRIBS_ARB
#ifndef GL_PROGRAM_NATIVE_ATTRIBS_ARB
#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE
#endif //GL_PROGRAM_NATIVE_ATTRIBS_ARB
#ifndef GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB
#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF
#endif //GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB
#ifndef GL_PROGRAM_ADDRESS_REGISTERS_ARB
#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0
#endif //GL_PROGRAM_ADDRESS_REGISTERS_ARB
#ifndef GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB
#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1
#endif //GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB
#ifndef GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB
#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2
#endif //GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB
#ifndef GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB
#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3
#endif //GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB
#ifndef GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB
#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4
#endif //GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB
#ifndef GL_MAX_PROGRAM_ENV_PARAMETERS_ARB
#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5
#endif //GL_MAX_PROGRAM_ENV_PARAMETERS_ARB
#ifndef GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB
#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6
#endif //GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB
#ifndef GL_TRANSPOSE_CURRENT_MATRIX_ARB
#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7
#endif //GL_TRANSPOSE_CURRENT_MATRIX_ARB
#ifndef GL_MATRIX0_ARB
#define GL_MATRIX0_ARB 0x88C0
#endif //GL_MATRIX0_ARB
#ifndef GL_MATRIX1_ARB
#define GL_MATRIX1_ARB 0x88C1
#endif //GL_MATRIX1_ARB
#ifndef GL_MATRIX2_ARB
#define GL_MATRIX2_ARB 0x88C2
#endif //GL_MATRIX2_ARB
#ifndef GL_MATRIX3_ARB
#define GL_MATRIX3_ARB 0x88C3
#endif //GL_MATRIX3_ARB
#ifndef GL_MATRIX4_ARB
#define GL_MATRIX4_ARB 0x88C4
#endif //GL_MATRIX4_ARB
#ifndef GL_MATRIX5_ARB
#define GL_MATRIX5_ARB 0x88C5
#endif //GL_MATRIX5_ARB
#ifndef GL_MATRIX6_ARB
#define GL_MATRIX6_ARB 0x88C6
#endif //GL_MATRIX6_ARB
#ifndef GL_MATRIX7_ARB
#define GL_MATRIX7_ARB 0x88C7
#endif //GL_MATRIX7_ARB
#ifndef GL_MATRIX8_ARB
#define GL_MATRIX8_ARB 0x88C8
#endif //GL_MATRIX8_ARB
#ifndef GL_MATRIX9_ARB
#define GL_MATRIX9_ARB 0x88C9
#endif //GL_MATRIX9_ARB
#ifndef GL_MATRIX10_ARB
#define GL_MATRIX10_ARB 0x88CA
#endif //GL_MATRIX10_ARB
#ifndef GL_MATRIX11_ARB
#define GL_MATRIX11_ARB 0x88CB
#endif //GL_MATRIX11_ARB
#ifndef GL_MATRIX12_ARB
#define GL_MATRIX12_ARB 0x88CC
#endif //GL_MATRIX12_ARB
#ifndef GL_MATRIX13_ARB
#define GL_MATRIX13_ARB 0x88CD
#endif //GL_MATRIX13_ARB
#ifndef GL_MATRIX14_ARB
#define GL_MATRIX14_ARB 0x88CE
#endif //GL_MATRIX14_ARB
#ifndef GL_MATRIX15_ARB
#define GL_MATRIX15_ARB 0x88CF
#endif //GL_MATRIX15_ARB
#ifndef GL_MATRIX16_ARB
#define GL_MATRIX16_ARB 0x88D0
#endif //GL_MATRIX16_ARB
#ifndef GL_MATRIX17_ARB
#define GL_MATRIX17_ARB 0x88D1
#endif //GL_MATRIX17_ARB
#ifndef GL_MATRIX18_ARB
#define GL_MATRIX18_ARB 0x88D2
#endif //GL_MATRIX18_ARB
#ifndef GL_MATRIX19_ARB
#define GL_MATRIX19_ARB 0x88D3
#endif //GL_MATRIX19_ARB
#ifndef GL_MATRIX20_ARB
#define GL_MATRIX20_ARB 0x88D4
#endif //GL_MATRIX20_ARB
#ifndef GL_MATRIX21_ARB
#define GL_MATRIX21_ARB 0x88D5
#endif //GL_MATRIX21_ARB
#ifndef GL_MATRIX22_ARB
#define GL_MATRIX22_ARB 0x88D6
#endif //GL_MATRIX22_ARB
#ifndef GL_MATRIX23_ARB
#define GL_MATRIX23_ARB 0x88D7
#endif //GL_MATRIX23_ARB
#ifndef GL_MATRIX24_ARB
#define GL_MATRIX24_ARB 0x88D8
#endif //GL_MATRIX24_ARB
#ifndef GL_MATRIX25_ARB
#define GL_MATRIX25_ARB 0x88D9
#endif //GL_MATRIX25_ARB
#ifndef GL_MATRIX26_ARB
#define GL_MATRIX26_ARB 0x88DA
#endif //GL_MATRIX26_ARB
#ifndef GL_MATRIX27_ARB
#define GL_MATRIX27_ARB 0x88DB
#endif //GL_MATRIX27_ARB
#ifndef GL_MATRIX28_ARB
#define GL_MATRIX28_ARB 0x88DC
#endif //GL_MATRIX28_ARB
#ifndef GL_MATRIX29_ARB
#define GL_MATRIX29_ARB 0x88DD
#endif //GL_MATRIX29_ARB
#ifndef GL_MATRIX30_ARB
#define GL_MATRIX30_ARB 0x88DE
#endif //GL_MATRIX30_ARB
#ifndef GL_MATRIX31_ARB
#define GL_MATRIX31_ARB 0x88DF
#endif //GL_MATRIX31_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDPROGRAMARBPROC_HPP)(GLenum,GLuint);
static inline void BindProgramARB(GLenum target1,GLuint program1)
{
	static PFNGLBINDPROGRAMARBPROC_HPP fn=reinterpret_cast<PFNGLBINDPROGRAMARBPROC_HPP>(_impl::_get_proc_address("glBindProgramARB","GL_ARB_vertex_program"));
	 fn(target1,program1);
}
typedef void (*PFNGLDELETEPROGRAMSARBPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteProgramsARB(GLsizei n1,const GLuint * programs1)
{
	static PFNGLDELETEPROGRAMSARBPROC_HPP fn=reinterpret_cast<PFNGLDELETEPROGRAMSARBPROC_HPP>(_impl::_get_proc_address("glDeleteProgramsARB","GL_ARB_vertex_program"));
	 fn(n1,programs1);
}
typedef void (*PFNGLDISABLEVERTEXATTRIBARRAYARBPROC_HPP)(GLuint);
static inline void DisableVertexAttribArrayARB(GLuint index1)
{
	static PFNGLDISABLEVERTEXATTRIBARRAYARBPROC_HPP fn=reinterpret_cast<PFNGLDISABLEVERTEXATTRIBARRAYARBPROC_HPP>(_impl::_get_proc_address("glDisableVertexAttribArrayARB","GL_ARB_vertex_program"));
	 fn(index1);
}
typedef void (*PFNGLENABLEVERTEXATTRIBARRAYARBPROC_HPP)(GLuint);
static inline void EnableVertexAttribArrayARB(GLuint index1)
{
	static PFNGLENABLEVERTEXATTRIBARRAYARBPROC_HPP fn=reinterpret_cast<PFNGLENABLEVERTEXATTRIBARRAYARBPROC_HPP>(_impl::_get_proc_address("glEnableVertexAttribArrayARB","GL_ARB_vertex_program"));
	 fn(index1);
}
typedef void (*PFNGLGENPROGRAMSARBPROC_HPP)(GLsizei,GLuint *);
static inline void GenProgramsARB(GLsizei n1,GLuint * programs1)
{
	static PFNGLGENPROGRAMSARBPROC_HPP fn=reinterpret_cast<PFNGLGENPROGRAMSARBPROC_HPP>(_impl::_get_proc_address("glGenProgramsARB","GL_ARB_vertex_program"));
	 fn(n1,programs1);
}
typedef void (*PFNGLGETPROGRAMENVPARAMETERDVARBPROC_HPP)(GLenum,GLuint,GLdouble *);
static inline void GetProgramEnvParameterdvARB(GLenum target1,GLuint index1,GLdouble * params1)
{
	static PFNGLGETPROGRAMENVPARAMETERDVARBPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMENVPARAMETERDVARBPROC_HPP>(_impl::_get_proc_address("glGetProgramEnvParameterdvARB","GL_ARB_vertex_program"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLGETPROGRAMENVPARAMETERFVARBPROC_HPP)(GLenum,GLuint,GLfloat *);
static inline void GetProgramEnvParameterfvARB(GLenum target1,GLuint index1,GLfloat * params1)
{
	static PFNGLGETPROGRAMENVPARAMETERFVARBPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMENVPARAMETERFVARBPROC_HPP>(_impl::_get_proc_address("glGetProgramEnvParameterfvARB","GL_ARB_vertex_program"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC_HPP)(GLenum,GLuint,GLdouble *);
static inline void GetProgramLocalParameterdvARB(GLenum target1,GLuint index1,GLdouble * params1)
{
	static PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC_HPP>(_impl::_get_proc_address("glGetProgramLocalParameterdvARB","GL_ARB_vertex_program"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC_HPP)(GLenum,GLuint,GLfloat *);
static inline void GetProgramLocalParameterfvARB(GLenum target1,GLuint index1,GLfloat * params1)
{
	static PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC_HPP>(_impl::_get_proc_address("glGetProgramLocalParameterfvARB","GL_ARB_vertex_program"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLGETPROGRAMSTRINGARBPROC_HPP)(GLenum,GLenum,void *);
static inline void GetProgramStringARB(GLenum target1,GLenum pname1,void * string1)
{
	static PFNGLGETPROGRAMSTRINGARBPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMSTRINGARBPROC_HPP>(_impl::_get_proc_address("glGetProgramStringARB","GL_ARB_vertex_program"));
	 fn(target1,pname1,string1);
}
typedef void (*PFNGLGETPROGRAMIVARBPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetProgramivARB(GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETPROGRAMIVARBPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMIVARBPROC_HPP>(_impl::_get_proc_address("glGetProgramivARB","GL_ARB_vertex_program"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETVERTEXATTRIBPOINTERVARBPROC_HPP)(GLuint,GLenum,void **);
static inline void GetVertexAttribPointervARB(GLuint index1,GLenum pname1,void ** pointer1)
{
	static PFNGLGETVERTEXATTRIBPOINTERVARBPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBPOINTERVARBPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribPointervARB","GL_ARB_vertex_program"));
	 fn(index1,pname1,pointer1);
}
typedef void (*PFNGLGETVERTEXATTRIBDVARBPROC_HPP)(GLuint,GLenum,GLdouble *);
static inline void GetVertexAttribdvARB(GLuint index1,GLenum pname1,GLdouble * params1)
{
	static PFNGLGETVERTEXATTRIBDVARBPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBDVARBPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribdvARB","GL_ARB_vertex_program"));
	 fn(index1,pname1,params1);
}
typedef void (*PFNGLGETVERTEXATTRIBFVARBPROC_HPP)(GLuint,GLenum,GLfloat *);
static inline void GetVertexAttribfvARB(GLuint index1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETVERTEXATTRIBFVARBPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBFVARBPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribfvARB","GL_ARB_vertex_program"));
	 fn(index1,pname1,params1);
}
typedef void (*PFNGLGETVERTEXATTRIBIVARBPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetVertexAttribivARB(GLuint index1,GLenum pname1,GLint * params1)
{
	static PFNGLGETVERTEXATTRIBIVARBPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBIVARBPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribivARB","GL_ARB_vertex_program"));
	 fn(index1,pname1,params1);
}
typedef GLboolean (*PFNGLISPROGRAMARBPROC_HPP)(GLuint);
static inline GLboolean IsProgramARB(GLuint program1)
{
	static PFNGLISPROGRAMARBPROC_HPP fn=reinterpret_cast<PFNGLISPROGRAMARBPROC_HPP>(_impl::_get_proc_address("glIsProgramARB","GL_ARB_vertex_program"));
	return fn(program1);
}
typedef void (*PFNGLPROGRAMENVPARAMETER4DARBPROC_HPP)(GLenum,GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void ProgramEnvParameter4dARB(GLenum target1,GLuint index1,GLdouble x1,GLdouble y1,GLdouble z1,GLdouble w1)
{
	static PFNGLPROGRAMENVPARAMETER4DARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMENVPARAMETER4DARBPROC_HPP>(_impl::_get_proc_address("glProgramEnvParameter4dARB","GL_ARB_vertex_program"));
	 fn(target1,index1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMENVPARAMETER4DVARBPROC_HPP)(GLenum,GLuint,const GLdouble *);
static inline void ProgramEnvParameter4dvARB(GLenum target1,GLuint index1,const GLdouble * params1)
{
	static PFNGLPROGRAMENVPARAMETER4DVARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMENVPARAMETER4DVARBPROC_HPP>(_impl::_get_proc_address("glProgramEnvParameter4dvARB","GL_ARB_vertex_program"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLPROGRAMENVPARAMETER4FARBPROC_HPP)(GLenum,GLuint,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void ProgramEnvParameter4fARB(GLenum target1,GLuint index1,GLfloat x1,GLfloat y1,GLfloat z1,GLfloat w1)
{
	static PFNGLPROGRAMENVPARAMETER4FARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMENVPARAMETER4FARBPROC_HPP>(_impl::_get_proc_address("glProgramEnvParameter4fARB","GL_ARB_vertex_program"));
	 fn(target1,index1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMENVPARAMETER4FVARBPROC_HPP)(GLenum,GLuint,const GLfloat *);
static inline void ProgramEnvParameter4fvARB(GLenum target1,GLuint index1,const GLfloat * params1)
{
	static PFNGLPROGRAMENVPARAMETER4FVARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMENVPARAMETER4FVARBPROC_HPP>(_impl::_get_proc_address("glProgramEnvParameter4fvARB","GL_ARB_vertex_program"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLPROGRAMLOCALPARAMETER4DARBPROC_HPP)(GLenum,GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void ProgramLocalParameter4dARB(GLenum target1,GLuint index1,GLdouble x1,GLdouble y1,GLdouble z1,GLdouble w1)
{
	static PFNGLPROGRAMLOCALPARAMETER4DARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETER4DARBPROC_HPP>(_impl::_get_proc_address("glProgramLocalParameter4dARB","GL_ARB_vertex_program"));
	 fn(target1,index1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMLOCALPARAMETER4DVARBPROC_HPP)(GLenum,GLuint,const GLdouble *);
static inline void ProgramLocalParameter4dvARB(GLenum target1,GLuint index1,const GLdouble * params1)
{
	static PFNGLPROGRAMLOCALPARAMETER4DVARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETER4DVARBPROC_HPP>(_impl::_get_proc_address("glProgramLocalParameter4dvARB","GL_ARB_vertex_program"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLPROGRAMLOCALPARAMETER4FARBPROC_HPP)(GLenum,GLuint,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void ProgramLocalParameter4fARB(GLenum target1,GLuint index1,GLfloat x1,GLfloat y1,GLfloat z1,GLfloat w1)
{
	static PFNGLPROGRAMLOCALPARAMETER4FARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETER4FARBPROC_HPP>(_impl::_get_proc_address("glProgramLocalParameter4fARB","GL_ARB_vertex_program"));
	 fn(target1,index1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMLOCALPARAMETER4FVARBPROC_HPP)(GLenum,GLuint,const GLfloat *);
static inline void ProgramLocalParameter4fvARB(GLenum target1,GLuint index1,const GLfloat * params1)
{
	static PFNGLPROGRAMLOCALPARAMETER4FVARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETER4FVARBPROC_HPP>(_impl::_get_proc_address("glProgramLocalParameter4fvARB","GL_ARB_vertex_program"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLPROGRAMSTRINGARBPROC_HPP)(GLenum,GLenum,GLsizei,const void *);
static inline void ProgramStringARB(GLenum target1,GLenum format1,GLsizei len1,const void * string1)
{
	static PFNGLPROGRAMSTRINGARBPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMSTRINGARBPROC_HPP>(_impl::_get_proc_address("glProgramStringARB","GL_ARB_vertex_program"));
	 fn(target1,format1,len1,string1);
}
typedef void (*PFNGLVERTEXATTRIB1DARBPROC_HPP)(GLuint,GLdouble);
static inline void VertexAttrib1dARB(GLuint index1,GLdouble x1)
{
	static PFNGLVERTEXATTRIB1DARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1DARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1dARB","GL_ARB_vertex_program"));
	 fn(index1,x1);
}
typedef void (*PFNGLVERTEXATTRIB1DVARBPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttrib1dvARB(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIB1DVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1DVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1dvARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB1FARBPROC_HPP)(GLuint,GLfloat);
static inline void VertexAttrib1fARB(GLuint index1,GLfloat x1)
{
	static PFNGLVERTEXATTRIB1FARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1FARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1fARB","GL_ARB_vertex_program"));
	 fn(index1,x1);
}
typedef void (*PFNGLVERTEXATTRIB1FVARBPROC_HPP)(GLuint,const GLfloat *);
static inline void VertexAttrib1fvARB(GLuint index1,const GLfloat * v1)
{
	static PFNGLVERTEXATTRIB1FVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1FVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1fvARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB1SARBPROC_HPP)(GLuint,GLshort);
static inline void VertexAttrib1sARB(GLuint index1,GLshort x1)
{
	static PFNGLVERTEXATTRIB1SARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1SARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1sARB","GL_ARB_vertex_program"));
	 fn(index1,x1);
}
typedef void (*PFNGLVERTEXATTRIB1SVARBPROC_HPP)(GLuint,const GLshort *);
static inline void VertexAttrib1svARB(GLuint index1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIB1SVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1SVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1svARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB2DARBPROC_HPP)(GLuint,GLdouble,GLdouble);
static inline void VertexAttrib2dARB(GLuint index1,GLdouble x1,GLdouble y1)
{
	static PFNGLVERTEXATTRIB2DARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2DARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2dARB","GL_ARB_vertex_program"));
	 fn(index1,x1,y1);
}
typedef void (*PFNGLVERTEXATTRIB2DVARBPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttrib2dvARB(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIB2DVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2DVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2dvARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB2FARBPROC_HPP)(GLuint,GLfloat,GLfloat);
static inline void VertexAttrib2fARB(GLuint index1,GLfloat x1,GLfloat y1)
{
	static PFNGLVERTEXATTRIB2FARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2FARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2fARB","GL_ARB_vertex_program"));
	 fn(index1,x1,y1);
}
typedef void (*PFNGLVERTEXATTRIB2FVARBPROC_HPP)(GLuint,const GLfloat *);
static inline void VertexAttrib2fvARB(GLuint index1,const GLfloat * v1)
{
	static PFNGLVERTEXATTRIB2FVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2FVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2fvARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB2SARBPROC_HPP)(GLuint,GLshort,GLshort);
static inline void VertexAttrib2sARB(GLuint index1,GLshort x1,GLshort y1)
{
	static PFNGLVERTEXATTRIB2SARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2SARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2sARB","GL_ARB_vertex_program"));
	 fn(index1,x1,y1);
}
typedef void (*PFNGLVERTEXATTRIB2SVARBPROC_HPP)(GLuint,const GLshort *);
static inline void VertexAttrib2svARB(GLuint index1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIB2SVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2SVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2svARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB3DARBPROC_HPP)(GLuint,GLdouble,GLdouble,GLdouble);
static inline void VertexAttrib3dARB(GLuint index1,GLdouble x1,GLdouble y1,GLdouble z1)
{
	static PFNGLVERTEXATTRIB3DARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3DARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3dARB","GL_ARB_vertex_program"));
	 fn(index1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXATTRIB3DVARBPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttrib3dvARB(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIB3DVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3DVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3dvARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB3FARBPROC_HPP)(GLuint,GLfloat,GLfloat,GLfloat);
static inline void VertexAttrib3fARB(GLuint index1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLVERTEXATTRIB3FARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3FARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3fARB","GL_ARB_vertex_program"));
	 fn(index1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXATTRIB3FVARBPROC_HPP)(GLuint,const GLfloat *);
static inline void VertexAttrib3fvARB(GLuint index1,const GLfloat * v1)
{
	static PFNGLVERTEXATTRIB3FVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3FVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3fvARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB3SARBPROC_HPP)(GLuint,GLshort,GLshort,GLshort);
static inline void VertexAttrib3sARB(GLuint index1,GLshort x1,GLshort y1,GLshort z1)
{
	static PFNGLVERTEXATTRIB3SARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3SARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3sARB","GL_ARB_vertex_program"));
	 fn(index1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXATTRIB3SVARBPROC_HPP)(GLuint,const GLshort *);
static inline void VertexAttrib3svARB(GLuint index1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIB3SVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3SVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3svARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4NBVARBPROC_HPP)(GLuint,const GLbyte *);
static inline void VertexAttrib4NbvARB(GLuint index1,const GLbyte * v1)
{
	static PFNGLVERTEXATTRIB4NBVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4NBVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4NbvARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4NIVARBPROC_HPP)(GLuint,const GLint *);
static inline void VertexAttrib4NivARB(GLuint index1,const GLint * v1)
{
	static PFNGLVERTEXATTRIB4NIVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4NIVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4NivARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4NSVARBPROC_HPP)(GLuint,const GLshort *);
static inline void VertexAttrib4NsvARB(GLuint index1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIB4NSVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4NSVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4NsvARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4NUBARBPROC_HPP)(GLuint,GLubyte,GLubyte,GLubyte,GLubyte);
static inline void VertexAttrib4NubARB(GLuint index1,GLubyte x1,GLubyte y1,GLubyte z1,GLubyte w1)
{
	static PFNGLVERTEXATTRIB4NUBARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4NUBARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4NubARB","GL_ARB_vertex_program"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIB4NUBVARBPROC_HPP)(GLuint,const GLubyte *);
static inline void VertexAttrib4NubvARB(GLuint index1,const GLubyte * v1)
{
	static PFNGLVERTEXATTRIB4NUBVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4NUBVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4NubvARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4NUIVARBPROC_HPP)(GLuint,const GLuint *);
static inline void VertexAttrib4NuivARB(GLuint index1,const GLuint * v1)
{
	static PFNGLVERTEXATTRIB4NUIVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4NUIVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4NuivARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4NUSVARBPROC_HPP)(GLuint,const GLushort *);
static inline void VertexAttrib4NusvARB(GLuint index1,const GLushort * v1)
{
	static PFNGLVERTEXATTRIB4NUSVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4NUSVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4NusvARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4BVARBPROC_HPP)(GLuint,const GLbyte *);
static inline void VertexAttrib4bvARB(GLuint index1,const GLbyte * v1)
{
	static PFNGLVERTEXATTRIB4BVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4BVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4bvARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4DARBPROC_HPP)(GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void VertexAttrib4dARB(GLuint index1,GLdouble x1,GLdouble y1,GLdouble z1,GLdouble w1)
{
	static PFNGLVERTEXATTRIB4DARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4DARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4dARB","GL_ARB_vertex_program"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIB4DVARBPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttrib4dvARB(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIB4DVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4DVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4dvARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4FARBPROC_HPP)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void VertexAttrib4fARB(GLuint index1,GLfloat x1,GLfloat y1,GLfloat z1,GLfloat w1)
{
	static PFNGLVERTEXATTRIB4FARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4FARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4fARB","GL_ARB_vertex_program"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIB4FVARBPROC_HPP)(GLuint,const GLfloat *);
static inline void VertexAttrib4fvARB(GLuint index1,const GLfloat * v1)
{
	static PFNGLVERTEXATTRIB4FVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4FVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4fvARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4IVARBPROC_HPP)(GLuint,const GLint *);
static inline void VertexAttrib4ivARB(GLuint index1,const GLint * v1)
{
	static PFNGLVERTEXATTRIB4IVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4IVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4ivARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4SARBPROC_HPP)(GLuint,GLshort,GLshort,GLshort,GLshort);
static inline void VertexAttrib4sARB(GLuint index1,GLshort x1,GLshort y1,GLshort z1,GLshort w1)
{
	static PFNGLVERTEXATTRIB4SARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4SARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4sARB","GL_ARB_vertex_program"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIB4SVARBPROC_HPP)(GLuint,const GLshort *);
static inline void VertexAttrib4svARB(GLuint index1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIB4SVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4SVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4svARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4UBVARBPROC_HPP)(GLuint,const GLubyte *);
static inline void VertexAttrib4ubvARB(GLuint index1,const GLubyte * v1)
{
	static PFNGLVERTEXATTRIB4UBVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4UBVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4ubvARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4UIVARBPROC_HPP)(GLuint,const GLuint *);
static inline void VertexAttrib4uivARB(GLuint index1,const GLuint * v1)
{
	static PFNGLVERTEXATTRIB4UIVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4UIVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4uivARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4USVARBPROC_HPP)(GLuint,const GLushort *);
static inline void VertexAttrib4usvARB(GLuint index1,const GLushort * v1)
{
	static PFNGLVERTEXATTRIB4USVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4USVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4usvARB","GL_ARB_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBPOINTERARBPROC_HPP)(GLuint,GLint,GLenum,GLboolean,GLsizei,const void *);
static inline void VertexAttribPointerARB(GLuint index1,GLint size1,GLenum type1,GLboolean normalized1,GLsizei stride1,const void * pointer1)
{
	static PFNGLVERTEXATTRIBPOINTERARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBPOINTERARBPROC_HPP>(_impl::_get_proc_address("glVertexAttribPointerARB","GL_ARB_vertex_program"));
	 fn(index1,size1,type1,normalized1,stride1,pointer1);
}}
#endif

#ifndef GL_ARB_vertex_shader
#define GL_ARB_vertex_shader
#ifndef GL_FLOAT
#define GL_FLOAT 0x1406
#endif //GL_FLOAT
#ifndef GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB
#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622
#endif //GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB
#ifndef GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB
#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623
#endif //GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB
#ifndef GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB
#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624
#endif //GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB
#ifndef GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB
#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625
#endif //GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB
#ifndef GL_CURRENT_VERTEX_ATTRIB_ARB
#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626
#endif //GL_CURRENT_VERTEX_ATTRIB_ARB
#ifndef GL_VERTEX_PROGRAM_POINT_SIZE_ARB
#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642
#endif //GL_VERTEX_PROGRAM_POINT_SIZE_ARB
#ifndef GL_VERTEX_PROGRAM_TWO_SIDE_ARB
#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643
#endif //GL_VERTEX_PROGRAM_TWO_SIDE_ARB
#ifndef GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB
#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645
#endif //GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB
#ifndef GL_MAX_VERTEX_ATTRIBS_ARB
#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869
#endif //GL_MAX_VERTEX_ATTRIBS_ARB
#ifndef GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB
#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A
#endif //GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB
#ifndef GL_MAX_TEXTURE_COORDS_ARB
#define GL_MAX_TEXTURE_COORDS_ARB 0x8871
#endif //GL_MAX_TEXTURE_COORDS_ARB
#ifndef GL_MAX_TEXTURE_IMAGE_UNITS_ARB
#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872
#endif //GL_MAX_TEXTURE_IMAGE_UNITS_ARB
#ifndef GL_VERTEX_SHADER_ARB
#define GL_VERTEX_SHADER_ARB 0x8B31
#endif //GL_VERTEX_SHADER_ARB
#ifndef GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A
#endif //GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
#ifndef GL_MAX_VARYING_FLOATS_ARB
#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B
#endif //GL_MAX_VARYING_FLOATS_ARB
#ifndef GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
#endif //GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
#ifndef GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D
#endif //GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
#ifndef GL_FLOAT_VEC2_ARB
#define GL_FLOAT_VEC2_ARB 0x8B50
#endif //GL_FLOAT_VEC2_ARB
#ifndef GL_FLOAT_VEC3_ARB
#define GL_FLOAT_VEC3_ARB 0x8B51
#endif //GL_FLOAT_VEC3_ARB
#ifndef GL_FLOAT_VEC4_ARB
#define GL_FLOAT_VEC4_ARB 0x8B52
#endif //GL_FLOAT_VEC4_ARB
#ifndef GL_FLOAT_MAT2_ARB
#define GL_FLOAT_MAT2_ARB 0x8B5A
#endif //GL_FLOAT_MAT2_ARB
#ifndef GL_FLOAT_MAT3_ARB
#define GL_FLOAT_MAT3_ARB 0x8B5B
#endif //GL_FLOAT_MAT3_ARB
#ifndef GL_FLOAT_MAT4_ARB
#define GL_FLOAT_MAT4_ARB 0x8B5C
#endif //GL_FLOAT_MAT4_ARB
#ifndef GL_OBJECT_ACTIVE_ATTRIBUTES_ARB
#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89
#endif //GL_OBJECT_ACTIVE_ATTRIBUTES_ARB
#ifndef GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB
#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A
#endif //GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDATTRIBLOCATIONARBPROC_HPP)(GLhandleARB,GLuint,const GLcharARB *);
static inline void BindAttribLocationARB(GLhandleARB programObj1,GLuint index1,const GLcharARB * name1)
{
	static PFNGLBINDATTRIBLOCATIONARBPROC_HPP fn=reinterpret_cast<PFNGLBINDATTRIBLOCATIONARBPROC_HPP>(_impl::_get_proc_address("glBindAttribLocationARB","GL_ARB_vertex_shader"));
	 fn(programObj1,index1,name1);
}
typedef void (*PFNGLDISABLEVERTEXATTRIBARRAYARBPROC_HPP)(GLuint);
static inline void DisableVertexAttribArrayARB(GLuint index1)
{
	static PFNGLDISABLEVERTEXATTRIBARRAYARBPROC_HPP fn=reinterpret_cast<PFNGLDISABLEVERTEXATTRIBARRAYARBPROC_HPP>(_impl::_get_proc_address("glDisableVertexAttribArrayARB","GL_ARB_vertex_shader"));
	 fn(index1);
}
typedef void (*PFNGLENABLEVERTEXATTRIBARRAYARBPROC_HPP)(GLuint);
static inline void EnableVertexAttribArrayARB(GLuint index1)
{
	static PFNGLENABLEVERTEXATTRIBARRAYARBPROC_HPP fn=reinterpret_cast<PFNGLENABLEVERTEXATTRIBARRAYARBPROC_HPP>(_impl::_get_proc_address("glEnableVertexAttribArrayARB","GL_ARB_vertex_shader"));
	 fn(index1);
}
typedef void (*PFNGLGETACTIVEATTRIBARBPROC_HPP)(GLhandleARB,GLuint,GLsizei,GLsizei *,GLint *,GLenum *,GLcharARB *);
static inline void GetActiveAttribARB(GLhandleARB programObj1,GLuint index1,GLsizei maxLength1,GLsizei * length1,GLint * size1,GLenum * type1,GLcharARB * name1)
{
	static PFNGLGETACTIVEATTRIBARBPROC_HPP fn=reinterpret_cast<PFNGLGETACTIVEATTRIBARBPROC_HPP>(_impl::_get_proc_address("glGetActiveAttribARB","GL_ARB_vertex_shader"));
	 fn(programObj1,index1,maxLength1,length1,size1,type1,name1);
}
typedef GLint (*PFNGLGETATTRIBLOCATIONARBPROC_HPP)(GLhandleARB,const GLcharARB *);
static inline GLint GetAttribLocationARB(GLhandleARB programObj1,const GLcharARB * name1)
{
	static PFNGLGETATTRIBLOCATIONARBPROC_HPP fn=reinterpret_cast<PFNGLGETATTRIBLOCATIONARBPROC_HPP>(_impl::_get_proc_address("glGetAttribLocationARB","GL_ARB_vertex_shader"));
	return fn(programObj1,name1);
}
typedef void (*PFNGLGETVERTEXATTRIBPOINTERVARBPROC_HPP)(GLuint,GLenum,void **);
static inline void GetVertexAttribPointervARB(GLuint index1,GLenum pname1,void ** pointer1)
{
	static PFNGLGETVERTEXATTRIBPOINTERVARBPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBPOINTERVARBPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribPointervARB","GL_ARB_vertex_shader"));
	 fn(index1,pname1,pointer1);
}
typedef void (*PFNGLGETVERTEXATTRIBDVARBPROC_HPP)(GLuint,GLenum,GLdouble *);
static inline void GetVertexAttribdvARB(GLuint index1,GLenum pname1,GLdouble * params1)
{
	static PFNGLGETVERTEXATTRIBDVARBPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBDVARBPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribdvARB","GL_ARB_vertex_shader"));
	 fn(index1,pname1,params1);
}
typedef void (*PFNGLGETVERTEXATTRIBFVARBPROC_HPP)(GLuint,GLenum,GLfloat *);
static inline void GetVertexAttribfvARB(GLuint index1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETVERTEXATTRIBFVARBPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBFVARBPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribfvARB","GL_ARB_vertex_shader"));
	 fn(index1,pname1,params1);
}
typedef void (*PFNGLGETVERTEXATTRIBIVARBPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetVertexAttribivARB(GLuint index1,GLenum pname1,GLint * params1)
{
	static PFNGLGETVERTEXATTRIBIVARBPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBIVARBPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribivARB","GL_ARB_vertex_shader"));
	 fn(index1,pname1,params1);
}
typedef void (*PFNGLVERTEXATTRIB1DARBPROC_HPP)(GLuint,GLdouble);
static inline void VertexAttrib1dARB(GLuint index1,GLdouble x1)
{
	static PFNGLVERTEXATTRIB1DARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1DARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1dARB","GL_ARB_vertex_shader"));
	 fn(index1,x1);
}
typedef void (*PFNGLVERTEXATTRIB1DVARBPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttrib1dvARB(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIB1DVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1DVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1dvARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB1FARBPROC_HPP)(GLuint,GLfloat);
static inline void VertexAttrib1fARB(GLuint index1,GLfloat x1)
{
	static PFNGLVERTEXATTRIB1FARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1FARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1fARB","GL_ARB_vertex_shader"));
	 fn(index1,x1);
}
typedef void (*PFNGLVERTEXATTRIB1FVARBPROC_HPP)(GLuint,const GLfloat *);
static inline void VertexAttrib1fvARB(GLuint index1,const GLfloat * v1)
{
	static PFNGLVERTEXATTRIB1FVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1FVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1fvARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB1SARBPROC_HPP)(GLuint,GLshort);
static inline void VertexAttrib1sARB(GLuint index1,GLshort x1)
{
	static PFNGLVERTEXATTRIB1SARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1SARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1sARB","GL_ARB_vertex_shader"));
	 fn(index1,x1);
}
typedef void (*PFNGLVERTEXATTRIB1SVARBPROC_HPP)(GLuint,const GLshort *);
static inline void VertexAttrib1svARB(GLuint index1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIB1SVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1SVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1svARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB2DARBPROC_HPP)(GLuint,GLdouble,GLdouble);
static inline void VertexAttrib2dARB(GLuint index1,GLdouble x1,GLdouble y1)
{
	static PFNGLVERTEXATTRIB2DARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2DARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2dARB","GL_ARB_vertex_shader"));
	 fn(index1,x1,y1);
}
typedef void (*PFNGLVERTEXATTRIB2DVARBPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttrib2dvARB(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIB2DVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2DVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2dvARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB2FARBPROC_HPP)(GLuint,GLfloat,GLfloat);
static inline void VertexAttrib2fARB(GLuint index1,GLfloat x1,GLfloat y1)
{
	static PFNGLVERTEXATTRIB2FARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2FARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2fARB","GL_ARB_vertex_shader"));
	 fn(index1,x1,y1);
}
typedef void (*PFNGLVERTEXATTRIB2FVARBPROC_HPP)(GLuint,const GLfloat *);
static inline void VertexAttrib2fvARB(GLuint index1,const GLfloat * v1)
{
	static PFNGLVERTEXATTRIB2FVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2FVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2fvARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB2SARBPROC_HPP)(GLuint,GLshort,GLshort);
static inline void VertexAttrib2sARB(GLuint index1,GLshort x1,GLshort y1)
{
	static PFNGLVERTEXATTRIB2SARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2SARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2sARB","GL_ARB_vertex_shader"));
	 fn(index1,x1,y1);
}
typedef void (*PFNGLVERTEXATTRIB2SVARBPROC_HPP)(GLuint,const GLshort *);
static inline void VertexAttrib2svARB(GLuint index1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIB2SVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2SVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2svARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB3DARBPROC_HPP)(GLuint,GLdouble,GLdouble,GLdouble);
static inline void VertexAttrib3dARB(GLuint index1,GLdouble x1,GLdouble y1,GLdouble z1)
{
	static PFNGLVERTEXATTRIB3DARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3DARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3dARB","GL_ARB_vertex_shader"));
	 fn(index1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXATTRIB3DVARBPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttrib3dvARB(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIB3DVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3DVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3dvARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB3FARBPROC_HPP)(GLuint,GLfloat,GLfloat,GLfloat);
static inline void VertexAttrib3fARB(GLuint index1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLVERTEXATTRIB3FARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3FARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3fARB","GL_ARB_vertex_shader"));
	 fn(index1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXATTRIB3FVARBPROC_HPP)(GLuint,const GLfloat *);
static inline void VertexAttrib3fvARB(GLuint index1,const GLfloat * v1)
{
	static PFNGLVERTEXATTRIB3FVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3FVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3fvARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB3SARBPROC_HPP)(GLuint,GLshort,GLshort,GLshort);
static inline void VertexAttrib3sARB(GLuint index1,GLshort x1,GLshort y1,GLshort z1)
{
	static PFNGLVERTEXATTRIB3SARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3SARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3sARB","GL_ARB_vertex_shader"));
	 fn(index1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXATTRIB3SVARBPROC_HPP)(GLuint,const GLshort *);
static inline void VertexAttrib3svARB(GLuint index1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIB3SVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3SVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3svARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4NBVARBPROC_HPP)(GLuint,const GLbyte *);
static inline void VertexAttrib4NbvARB(GLuint index1,const GLbyte * v1)
{
	static PFNGLVERTEXATTRIB4NBVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4NBVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4NbvARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4NIVARBPROC_HPP)(GLuint,const GLint *);
static inline void VertexAttrib4NivARB(GLuint index1,const GLint * v1)
{
	static PFNGLVERTEXATTRIB4NIVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4NIVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4NivARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4NSVARBPROC_HPP)(GLuint,const GLshort *);
static inline void VertexAttrib4NsvARB(GLuint index1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIB4NSVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4NSVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4NsvARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4NUBARBPROC_HPP)(GLuint,GLubyte,GLubyte,GLubyte,GLubyte);
static inline void VertexAttrib4NubARB(GLuint index1,GLubyte x1,GLubyte y1,GLubyte z1,GLubyte w1)
{
	static PFNGLVERTEXATTRIB4NUBARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4NUBARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4NubARB","GL_ARB_vertex_shader"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIB4NUBVARBPROC_HPP)(GLuint,const GLubyte *);
static inline void VertexAttrib4NubvARB(GLuint index1,const GLubyte * v1)
{
	static PFNGLVERTEXATTRIB4NUBVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4NUBVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4NubvARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4NUIVARBPROC_HPP)(GLuint,const GLuint *);
static inline void VertexAttrib4NuivARB(GLuint index1,const GLuint * v1)
{
	static PFNGLVERTEXATTRIB4NUIVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4NUIVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4NuivARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4NUSVARBPROC_HPP)(GLuint,const GLushort *);
static inline void VertexAttrib4NusvARB(GLuint index1,const GLushort * v1)
{
	static PFNGLVERTEXATTRIB4NUSVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4NUSVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4NusvARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4BVARBPROC_HPP)(GLuint,const GLbyte *);
static inline void VertexAttrib4bvARB(GLuint index1,const GLbyte * v1)
{
	static PFNGLVERTEXATTRIB4BVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4BVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4bvARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4DARBPROC_HPP)(GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void VertexAttrib4dARB(GLuint index1,GLdouble x1,GLdouble y1,GLdouble z1,GLdouble w1)
{
	static PFNGLVERTEXATTRIB4DARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4DARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4dARB","GL_ARB_vertex_shader"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIB4DVARBPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttrib4dvARB(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIB4DVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4DVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4dvARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4FARBPROC_HPP)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void VertexAttrib4fARB(GLuint index1,GLfloat x1,GLfloat y1,GLfloat z1,GLfloat w1)
{
	static PFNGLVERTEXATTRIB4FARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4FARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4fARB","GL_ARB_vertex_shader"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIB4FVARBPROC_HPP)(GLuint,const GLfloat *);
static inline void VertexAttrib4fvARB(GLuint index1,const GLfloat * v1)
{
	static PFNGLVERTEXATTRIB4FVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4FVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4fvARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4IVARBPROC_HPP)(GLuint,const GLint *);
static inline void VertexAttrib4ivARB(GLuint index1,const GLint * v1)
{
	static PFNGLVERTEXATTRIB4IVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4IVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4ivARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4SARBPROC_HPP)(GLuint,GLshort,GLshort,GLshort,GLshort);
static inline void VertexAttrib4sARB(GLuint index1,GLshort x1,GLshort y1,GLshort z1,GLshort w1)
{
	static PFNGLVERTEXATTRIB4SARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4SARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4sARB","GL_ARB_vertex_shader"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIB4SVARBPROC_HPP)(GLuint,const GLshort *);
static inline void VertexAttrib4svARB(GLuint index1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIB4SVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4SVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4svARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4UBVARBPROC_HPP)(GLuint,const GLubyte *);
static inline void VertexAttrib4ubvARB(GLuint index1,const GLubyte * v1)
{
	static PFNGLVERTEXATTRIB4UBVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4UBVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4ubvARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4UIVARBPROC_HPP)(GLuint,const GLuint *);
static inline void VertexAttrib4uivARB(GLuint index1,const GLuint * v1)
{
	static PFNGLVERTEXATTRIB4UIVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4UIVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4uivARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4USVARBPROC_HPP)(GLuint,const GLushort *);
static inline void VertexAttrib4usvARB(GLuint index1,const GLushort * v1)
{
	static PFNGLVERTEXATTRIB4USVARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4USVARBPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4usvARB","GL_ARB_vertex_shader"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBPOINTERARBPROC_HPP)(GLuint,GLint,GLenum,GLboolean,GLsizei,const void *);
static inline void VertexAttribPointerARB(GLuint index1,GLint size1,GLenum type1,GLboolean normalized1,GLsizei stride1,const void * pointer1)
{
	static PFNGLVERTEXATTRIBPOINTERARBPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBPOINTERARBPROC_HPP>(_impl::_get_proc_address("glVertexAttribPointerARB","GL_ARB_vertex_shader"));
	 fn(index1,size1,type1,normalized1,stride1,pointer1);
}}
#endif

#ifndef GL_ARB_vertex_type_10f_11f_11f_rev
#define GL_ARB_vertex_type_10f_11f_11f_rev
#ifndef GL_UNSIGNED_INT_10F_11F_11F_REV
#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
#endif //GL_UNSIGNED_INT_10F_11F_11F_REV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ARB_vertex_type_2_10_10_10_rev
#define GL_ARB_vertex_type_2_10_10_10_rev
#ifndef GL_UNSIGNED_INT_2_10_10_10_REV
#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
#endif //GL_UNSIGNED_INT_2_10_10_10_REV
#ifndef GL_INT_2_10_10_10_REV
#define GL_INT_2_10_10_10_REV 0x8D9F
#endif //GL_INT_2_10_10_10_REV
extern "C" {
}
namespace gl{

typedef void (*PFNGLVERTEXATTRIBP1UIPROC_HPP)(GLuint,GLenum,GLboolean,GLuint);
static inline void VertexAttribP1ui(GLuint index1,GLenum type1,GLboolean normalized1,GLuint value1)
{
	static PFNGLVERTEXATTRIBP1UIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBP1UIPROC_HPP>(_impl::_get_proc_address("glVertexAttribP1ui","GL_ARB_vertex_type_2_10_10_10_rev"));
	 fn(index1,type1,normalized1,value1);
}
typedef void (*PFNGLVERTEXATTRIBP1UIVPROC_HPP)(GLuint,GLenum,GLboolean,const GLuint *);
static inline void VertexAttribP1uiv(GLuint index1,GLenum type1,GLboolean normalized1,const GLuint * value1)
{
	static PFNGLVERTEXATTRIBP1UIVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBP1UIVPROC_HPP>(_impl::_get_proc_address("glVertexAttribP1uiv","GL_ARB_vertex_type_2_10_10_10_rev"));
	 fn(index1,type1,normalized1,value1);
}
typedef void (*PFNGLVERTEXATTRIBP2UIPROC_HPP)(GLuint,GLenum,GLboolean,GLuint);
static inline void VertexAttribP2ui(GLuint index1,GLenum type1,GLboolean normalized1,GLuint value1)
{
	static PFNGLVERTEXATTRIBP2UIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBP2UIPROC_HPP>(_impl::_get_proc_address("glVertexAttribP2ui","GL_ARB_vertex_type_2_10_10_10_rev"));
	 fn(index1,type1,normalized1,value1);
}
typedef void (*PFNGLVERTEXATTRIBP2UIVPROC_HPP)(GLuint,GLenum,GLboolean,const GLuint *);
static inline void VertexAttribP2uiv(GLuint index1,GLenum type1,GLboolean normalized1,const GLuint * value1)
{
	static PFNGLVERTEXATTRIBP2UIVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBP2UIVPROC_HPP>(_impl::_get_proc_address("glVertexAttribP2uiv","GL_ARB_vertex_type_2_10_10_10_rev"));
	 fn(index1,type1,normalized1,value1);
}
typedef void (*PFNGLVERTEXATTRIBP3UIPROC_HPP)(GLuint,GLenum,GLboolean,GLuint);
static inline void VertexAttribP3ui(GLuint index1,GLenum type1,GLboolean normalized1,GLuint value1)
{
	static PFNGLVERTEXATTRIBP3UIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBP3UIPROC_HPP>(_impl::_get_proc_address("glVertexAttribP3ui","GL_ARB_vertex_type_2_10_10_10_rev"));
	 fn(index1,type1,normalized1,value1);
}
typedef void (*PFNGLVERTEXATTRIBP3UIVPROC_HPP)(GLuint,GLenum,GLboolean,const GLuint *);
static inline void VertexAttribP3uiv(GLuint index1,GLenum type1,GLboolean normalized1,const GLuint * value1)
{
	static PFNGLVERTEXATTRIBP3UIVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBP3UIVPROC_HPP>(_impl::_get_proc_address("glVertexAttribP3uiv","GL_ARB_vertex_type_2_10_10_10_rev"));
	 fn(index1,type1,normalized1,value1);
}
typedef void (*PFNGLVERTEXATTRIBP4UIPROC_HPP)(GLuint,GLenum,GLboolean,GLuint);
static inline void VertexAttribP4ui(GLuint index1,GLenum type1,GLboolean normalized1,GLuint value1)
{
	static PFNGLVERTEXATTRIBP4UIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBP4UIPROC_HPP>(_impl::_get_proc_address("glVertexAttribP4ui","GL_ARB_vertex_type_2_10_10_10_rev"));
	 fn(index1,type1,normalized1,value1);
}
typedef void (*PFNGLVERTEXATTRIBP4UIVPROC_HPP)(GLuint,GLenum,GLboolean,const GLuint *);
static inline void VertexAttribP4uiv(GLuint index1,GLenum type1,GLboolean normalized1,const GLuint * value1)
{
	static PFNGLVERTEXATTRIBP4UIVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBP4UIVPROC_HPP>(_impl::_get_proc_address("glVertexAttribP4uiv","GL_ARB_vertex_type_2_10_10_10_rev"));
	 fn(index1,type1,normalized1,value1);
}}
#endif

#ifndef GL_ARB_viewport_array
#define GL_ARB_viewport_array
#ifndef GL_DEPTH_RANGE
#define GL_DEPTH_RANGE 0x0B70
#endif //GL_DEPTH_RANGE
#ifndef GL_VIEWPORT
#define GL_VIEWPORT 0x0BA2
#endif //GL_VIEWPORT
#ifndef GL_SCISSOR_BOX
#define GL_SCISSOR_BOX 0x0C10
#endif //GL_SCISSOR_BOX
#ifndef GL_SCISSOR_TEST
#define GL_SCISSOR_TEST 0x0C11
#endif //GL_SCISSOR_TEST
#ifndef GL_MAX_VIEWPORTS
#define GL_MAX_VIEWPORTS 0x825B
#endif //GL_MAX_VIEWPORTS
#ifndef GL_VIEWPORT_SUBPIXEL_BITS
#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C
#endif //GL_VIEWPORT_SUBPIXEL_BITS
#ifndef GL_VIEWPORT_BOUNDS_RANGE
#define GL_VIEWPORT_BOUNDS_RANGE 0x825D
#endif //GL_VIEWPORT_BOUNDS_RANGE
#ifndef GL_LAYER_PROVOKING_VERTEX
#define GL_LAYER_PROVOKING_VERTEX 0x825E
#endif //GL_LAYER_PROVOKING_VERTEX
#ifndef GL_VIEWPORT_INDEX_PROVOKING_VERTEX
#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F
#endif //GL_VIEWPORT_INDEX_PROVOKING_VERTEX
#ifndef GL_UNDEFINED_VERTEX
#define GL_UNDEFINED_VERTEX 0x8260
#endif //GL_UNDEFINED_VERTEX
#ifndef GL_FIRST_VERTEX_CONVENTION
#define GL_FIRST_VERTEX_CONVENTION 0x8E4D
#endif //GL_FIRST_VERTEX_CONVENTION
#ifndef GL_LAST_VERTEX_CONVENTION
#define GL_LAST_VERTEX_CONVENTION 0x8E4E
#endif //GL_LAST_VERTEX_CONVENTION
#ifndef GL_PROVOKING_VERTEX
#define GL_PROVOKING_VERTEX 0x8E4F
#endif //GL_PROVOKING_VERTEX
extern "C" {
}
namespace gl{

typedef void (*PFNGLDEPTHRANGEARRAYVPROC_HPP)(GLuint,GLsizei,const GLdouble *);
static inline void DepthRangeArrayv(GLuint first1,GLsizei count1,const GLdouble * v1)
{
	static PFNGLDEPTHRANGEARRAYVPROC_HPP fn=reinterpret_cast<PFNGLDEPTHRANGEARRAYVPROC_HPP>(_impl::_get_proc_address("glDepthRangeArrayv","GL_ARB_viewport_array"));
	 fn(first1,count1,v1);
}
typedef void (*PFNGLDEPTHRANGEINDEXEDPROC_HPP)(GLuint,GLdouble,GLdouble);
static inline void DepthRangeIndexed(GLuint index1,GLdouble n1,GLdouble f1)
{
	static PFNGLDEPTHRANGEINDEXEDPROC_HPP fn=reinterpret_cast<PFNGLDEPTHRANGEINDEXEDPROC_HPP>(_impl::_get_proc_address("glDepthRangeIndexed","GL_ARB_viewport_array"));
	 fn(index1,n1,f1);
}
typedef void (*PFNGLGETDOUBLEI_VPROC_HPP)(GLenum,GLuint,GLdouble *);
static inline void GetDoublei_v(GLenum target1,GLuint index1,GLdouble * data1)
{
	static PFNGLGETDOUBLEI_VPROC_HPP fn=reinterpret_cast<PFNGLGETDOUBLEI_VPROC_HPP>(_impl::_get_proc_address("glGetDoublei_v","GL_ARB_viewport_array"));
	 fn(target1,index1,data1);
}
typedef void (*PFNGLGETFLOATI_VPROC_HPP)(GLenum,GLuint,GLfloat *);
static inline void GetFloati_v(GLenum target1,GLuint index1,GLfloat * data1)
{
	static PFNGLGETFLOATI_VPROC_HPP fn=reinterpret_cast<PFNGLGETFLOATI_VPROC_HPP>(_impl::_get_proc_address("glGetFloati_v","GL_ARB_viewport_array"));
	 fn(target1,index1,data1);
}
typedef void (*PFNGLSCISSORARRAYVPROC_HPP)(GLuint,GLsizei,const GLint *);
static inline void ScissorArrayv(GLuint first1,GLsizei count1,const GLint * v1)
{
	static PFNGLSCISSORARRAYVPROC_HPP fn=reinterpret_cast<PFNGLSCISSORARRAYVPROC_HPP>(_impl::_get_proc_address("glScissorArrayv","GL_ARB_viewport_array"));
	 fn(first1,count1,v1);
}
typedef void (*PFNGLSCISSORINDEXEDPROC_HPP)(GLuint,GLint,GLint,GLsizei,GLsizei);
static inline void ScissorIndexed(GLuint index1,GLint left1,GLint bottom1,GLsizei width1,GLsizei height1)
{
	static PFNGLSCISSORINDEXEDPROC_HPP fn=reinterpret_cast<PFNGLSCISSORINDEXEDPROC_HPP>(_impl::_get_proc_address("glScissorIndexed","GL_ARB_viewport_array"));
	 fn(index1,left1,bottom1,width1,height1);
}
typedef void (*PFNGLSCISSORINDEXEDVPROC_HPP)(GLuint,const GLint *);
static inline void ScissorIndexedv(GLuint index1,const GLint * v1)
{
	static PFNGLSCISSORINDEXEDVPROC_HPP fn=reinterpret_cast<PFNGLSCISSORINDEXEDVPROC_HPP>(_impl::_get_proc_address("glScissorIndexedv","GL_ARB_viewport_array"));
	 fn(index1,v1);
}
typedef void (*PFNGLVIEWPORTARRAYVPROC_HPP)(GLuint,GLsizei,const GLfloat *);
static inline void ViewportArrayv(GLuint first1,GLsizei count1,const GLfloat * v1)
{
	static PFNGLVIEWPORTARRAYVPROC_HPP fn=reinterpret_cast<PFNGLVIEWPORTARRAYVPROC_HPP>(_impl::_get_proc_address("glViewportArrayv","GL_ARB_viewport_array"));
	 fn(first1,count1,v1);
}
typedef void (*PFNGLVIEWPORTINDEXEDFPROC_HPP)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void ViewportIndexedf(GLuint index1,GLfloat x1,GLfloat y1,GLfloat w1,GLfloat h1)
{
	static PFNGLVIEWPORTINDEXEDFPROC_HPP fn=reinterpret_cast<PFNGLVIEWPORTINDEXEDFPROC_HPP>(_impl::_get_proc_address("glViewportIndexedf","GL_ARB_viewport_array"));
	 fn(index1,x1,y1,w1,h1);
}
typedef void (*PFNGLVIEWPORTINDEXEDFVPROC_HPP)(GLuint,const GLfloat *);
static inline void ViewportIndexedfv(GLuint index1,const GLfloat * v1)
{
	static PFNGLVIEWPORTINDEXEDFVPROC_HPP fn=reinterpret_cast<PFNGLVIEWPORTINDEXEDFVPROC_HPP>(_impl::_get_proc_address("glViewportIndexedfv","GL_ARB_viewport_array"));
	 fn(index1,v1);
}}
#endif

#ifndef GL_ARB_window_pos
#define GL_ARB_window_pos
extern "C" {
}
namespace gl{

typedef void (*PFNGLWINDOWPOS2DARBPROC_HPP)(GLdouble,GLdouble);
static inline void WindowPos2dARB(GLdouble x1,GLdouble y1)
{
	static PFNGLWINDOWPOS2DARBPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS2DARBPROC_HPP>(_impl::_get_proc_address("glWindowPos2dARB","GL_ARB_window_pos"));
	 fn(x1,y1);
}
typedef void (*PFNGLWINDOWPOS2DVARBPROC_HPP)(const GLdouble *);
static inline void WindowPos2dvARB(const GLdouble * v1)
{
	static PFNGLWINDOWPOS2DVARBPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS2DVARBPROC_HPP>(_impl::_get_proc_address("glWindowPos2dvARB","GL_ARB_window_pos"));
	 fn(v1);
}
typedef void (*PFNGLWINDOWPOS2FARBPROC_HPP)(GLfloat,GLfloat);
static inline void WindowPos2fARB(GLfloat x1,GLfloat y1)
{
	static PFNGLWINDOWPOS2FARBPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS2FARBPROC_HPP>(_impl::_get_proc_address("glWindowPos2fARB","GL_ARB_window_pos"));
	 fn(x1,y1);
}
typedef void (*PFNGLWINDOWPOS2FVARBPROC_HPP)(const GLfloat *);
static inline void WindowPos2fvARB(const GLfloat * v1)
{
	static PFNGLWINDOWPOS2FVARBPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS2FVARBPROC_HPP>(_impl::_get_proc_address("glWindowPos2fvARB","GL_ARB_window_pos"));
	 fn(v1);
}
typedef void (*PFNGLWINDOWPOS2IARBPROC_HPP)(GLint,GLint);
static inline void WindowPos2iARB(GLint x1,GLint y1)
{
	static PFNGLWINDOWPOS2IARBPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS2IARBPROC_HPP>(_impl::_get_proc_address("glWindowPos2iARB","GL_ARB_window_pos"));
	 fn(x1,y1);
}
typedef void (*PFNGLWINDOWPOS2IVARBPROC_HPP)(const GLint *);
static inline void WindowPos2ivARB(const GLint * v1)
{
	static PFNGLWINDOWPOS2IVARBPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS2IVARBPROC_HPP>(_impl::_get_proc_address("glWindowPos2ivARB","GL_ARB_window_pos"));
	 fn(v1);
}
typedef void (*PFNGLWINDOWPOS2SARBPROC_HPP)(GLshort,GLshort);
static inline void WindowPos2sARB(GLshort x1,GLshort y1)
{
	static PFNGLWINDOWPOS2SARBPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS2SARBPROC_HPP>(_impl::_get_proc_address("glWindowPos2sARB","GL_ARB_window_pos"));
	 fn(x1,y1);
}
typedef void (*PFNGLWINDOWPOS2SVARBPROC_HPP)(const GLshort *);
static inline void WindowPos2svARB(const GLshort * v1)
{
	static PFNGLWINDOWPOS2SVARBPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS2SVARBPROC_HPP>(_impl::_get_proc_address("glWindowPos2svARB","GL_ARB_window_pos"));
	 fn(v1);
}
typedef void (*PFNGLWINDOWPOS3DARBPROC_HPP)(GLdouble,GLdouble,GLdouble);
static inline void WindowPos3dARB(GLdouble x1,GLdouble y1,GLdouble z1)
{
	static PFNGLWINDOWPOS3DARBPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS3DARBPROC_HPP>(_impl::_get_proc_address("glWindowPos3dARB","GL_ARB_window_pos"));
	 fn(x1,y1,z1);
}
typedef void (*PFNGLWINDOWPOS3DVARBPROC_HPP)(const GLdouble *);
static inline void WindowPos3dvARB(const GLdouble * v1)
{
	static PFNGLWINDOWPOS3DVARBPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS3DVARBPROC_HPP>(_impl::_get_proc_address("glWindowPos3dvARB","GL_ARB_window_pos"));
	 fn(v1);
}
typedef void (*PFNGLWINDOWPOS3FARBPROC_HPP)(GLfloat,GLfloat,GLfloat);
static inline void WindowPos3fARB(GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLWINDOWPOS3FARBPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS3FARBPROC_HPP>(_impl::_get_proc_address("glWindowPos3fARB","GL_ARB_window_pos"));
	 fn(x1,y1,z1);
}
typedef void (*PFNGLWINDOWPOS3FVARBPROC_HPP)(const GLfloat *);
static inline void WindowPos3fvARB(const GLfloat * v1)
{
	static PFNGLWINDOWPOS3FVARBPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS3FVARBPROC_HPP>(_impl::_get_proc_address("glWindowPos3fvARB","GL_ARB_window_pos"));
	 fn(v1);
}
typedef void (*PFNGLWINDOWPOS3IARBPROC_HPP)(GLint,GLint,GLint);
static inline void WindowPos3iARB(GLint x1,GLint y1,GLint z1)
{
	static PFNGLWINDOWPOS3IARBPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS3IARBPROC_HPP>(_impl::_get_proc_address("glWindowPos3iARB","GL_ARB_window_pos"));
	 fn(x1,y1,z1);
}
typedef void (*PFNGLWINDOWPOS3IVARBPROC_HPP)(const GLint *);
static inline void WindowPos3ivARB(const GLint * v1)
{
	static PFNGLWINDOWPOS3IVARBPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS3IVARBPROC_HPP>(_impl::_get_proc_address("glWindowPos3ivARB","GL_ARB_window_pos"));
	 fn(v1);
}
typedef void (*PFNGLWINDOWPOS3SARBPROC_HPP)(GLshort,GLshort,GLshort);
static inline void WindowPos3sARB(GLshort x1,GLshort y1,GLshort z1)
{
	static PFNGLWINDOWPOS3SARBPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS3SARBPROC_HPP>(_impl::_get_proc_address("glWindowPos3sARB","GL_ARB_window_pos"));
	 fn(x1,y1,z1);
}
typedef void (*PFNGLWINDOWPOS3SVARBPROC_HPP)(const GLshort *);
static inline void WindowPos3svARB(const GLshort * v1)
{
	static PFNGLWINDOWPOS3SVARBPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS3SVARBPROC_HPP>(_impl::_get_proc_address("glWindowPos3svARB","GL_ARB_window_pos"));
	 fn(v1);
}}
#endif

#ifndef GL_ATI_draw_buffers
#define GL_ATI_draw_buffers
#ifndef GL_MAX_DRAW_BUFFERS_ATI
#define GL_MAX_DRAW_BUFFERS_ATI 0x8824
#endif //GL_MAX_DRAW_BUFFERS_ATI
#ifndef GL_DRAW_BUFFER0_ATI
#define GL_DRAW_BUFFER0_ATI 0x8825
#endif //GL_DRAW_BUFFER0_ATI
#ifndef GL_DRAW_BUFFER1_ATI
#define GL_DRAW_BUFFER1_ATI 0x8826
#endif //GL_DRAW_BUFFER1_ATI
#ifndef GL_DRAW_BUFFER2_ATI
#define GL_DRAW_BUFFER2_ATI 0x8827
#endif //GL_DRAW_BUFFER2_ATI
#ifndef GL_DRAW_BUFFER3_ATI
#define GL_DRAW_BUFFER3_ATI 0x8828
#endif //GL_DRAW_BUFFER3_ATI
#ifndef GL_DRAW_BUFFER4_ATI
#define GL_DRAW_BUFFER4_ATI 0x8829
#endif //GL_DRAW_BUFFER4_ATI
#ifndef GL_DRAW_BUFFER5_ATI
#define GL_DRAW_BUFFER5_ATI 0x882A
#endif //GL_DRAW_BUFFER5_ATI
#ifndef GL_DRAW_BUFFER6_ATI
#define GL_DRAW_BUFFER6_ATI 0x882B
#endif //GL_DRAW_BUFFER6_ATI
#ifndef GL_DRAW_BUFFER7_ATI
#define GL_DRAW_BUFFER7_ATI 0x882C
#endif //GL_DRAW_BUFFER7_ATI
#ifndef GL_DRAW_BUFFER8_ATI
#define GL_DRAW_BUFFER8_ATI 0x882D
#endif //GL_DRAW_BUFFER8_ATI
#ifndef GL_DRAW_BUFFER9_ATI
#define GL_DRAW_BUFFER9_ATI 0x882E
#endif //GL_DRAW_BUFFER9_ATI
#ifndef GL_DRAW_BUFFER10_ATI
#define GL_DRAW_BUFFER10_ATI 0x882F
#endif //GL_DRAW_BUFFER10_ATI
#ifndef GL_DRAW_BUFFER11_ATI
#define GL_DRAW_BUFFER11_ATI 0x8830
#endif //GL_DRAW_BUFFER11_ATI
#ifndef GL_DRAW_BUFFER12_ATI
#define GL_DRAW_BUFFER12_ATI 0x8831
#endif //GL_DRAW_BUFFER12_ATI
#ifndef GL_DRAW_BUFFER13_ATI
#define GL_DRAW_BUFFER13_ATI 0x8832
#endif //GL_DRAW_BUFFER13_ATI
#ifndef GL_DRAW_BUFFER14_ATI
#define GL_DRAW_BUFFER14_ATI 0x8833
#endif //GL_DRAW_BUFFER14_ATI
#ifndef GL_DRAW_BUFFER15_ATI
#define GL_DRAW_BUFFER15_ATI 0x8834
#endif //GL_DRAW_BUFFER15_ATI
extern "C" {
}
namespace gl{

typedef void (*PFNGLDRAWBUFFERSATIPROC_HPP)(GLsizei,const GLenum *);
static inline void DrawBuffersATI(GLsizei n1,const GLenum * bufs1)
{
	static PFNGLDRAWBUFFERSATIPROC_HPP fn=reinterpret_cast<PFNGLDRAWBUFFERSATIPROC_HPP>(_impl::_get_proc_address("glDrawBuffersATI","GL_ATI_draw_buffers"));
	 fn(n1,bufs1);
}}
#endif

#ifndef GL_ATI_element_array
#define GL_ATI_element_array
#ifndef GL_ELEMENT_ARRAY_ATI
#define GL_ELEMENT_ARRAY_ATI 0x8768
#endif //GL_ELEMENT_ARRAY_ATI
#ifndef GL_ELEMENT_ARRAY_TYPE_ATI
#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769
#endif //GL_ELEMENT_ARRAY_TYPE_ATI
#ifndef GL_ELEMENT_ARRAY_POINTER_ATI
#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A
#endif //GL_ELEMENT_ARRAY_POINTER_ATI
extern "C" {
}
namespace gl{

typedef void (*PFNGLDRAWELEMENTARRAYATIPROC_HPP)(GLenum,GLsizei);
static inline void DrawElementArrayATI(GLenum mode1,GLsizei count1)
{
	static PFNGLDRAWELEMENTARRAYATIPROC_HPP fn=reinterpret_cast<PFNGLDRAWELEMENTARRAYATIPROC_HPP>(_impl::_get_proc_address("glDrawElementArrayATI","GL_ATI_element_array"));
	 fn(mode1,count1);
}
typedef void (*PFNGLDRAWRANGEELEMENTARRAYATIPROC_HPP)(GLenum,GLuint,GLuint,GLsizei);
static inline void DrawRangeElementArrayATI(GLenum mode1,GLuint start1,GLuint end1,GLsizei count1)
{
	static PFNGLDRAWRANGEELEMENTARRAYATIPROC_HPP fn=reinterpret_cast<PFNGLDRAWRANGEELEMENTARRAYATIPROC_HPP>(_impl::_get_proc_address("glDrawRangeElementArrayATI","GL_ATI_element_array"));
	 fn(mode1,start1,end1,count1);
}
typedef void (*PFNGLELEMENTPOINTERATIPROC_HPP)(GLenum,const void *);
static inline void ElementPointerATI(GLenum type1,const void * pointer1)
{
	static PFNGLELEMENTPOINTERATIPROC_HPP fn=reinterpret_cast<PFNGLELEMENTPOINTERATIPROC_HPP>(_impl::_get_proc_address("glElementPointerATI","GL_ATI_element_array"));
	 fn(type1,pointer1);
}}
#endif

#ifndef GL_ATI_envmap_bumpmap
#define GL_ATI_envmap_bumpmap
#ifndef GL_BUMP_ROT_MATRIX_ATI
#define GL_BUMP_ROT_MATRIX_ATI 0x8775
#endif //GL_BUMP_ROT_MATRIX_ATI
#ifndef GL_BUMP_ROT_MATRIX_SIZE_ATI
#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776
#endif //GL_BUMP_ROT_MATRIX_SIZE_ATI
#ifndef GL_BUMP_NUM_TEX_UNITS_ATI
#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777
#endif //GL_BUMP_NUM_TEX_UNITS_ATI
#ifndef GL_BUMP_TEX_UNITS_ATI
#define GL_BUMP_TEX_UNITS_ATI 0x8778
#endif //GL_BUMP_TEX_UNITS_ATI
#ifndef GL_DUDV_ATI
#define GL_DUDV_ATI 0x8779
#endif //GL_DUDV_ATI
#ifndef GL_DU8DV8_ATI
#define GL_DU8DV8_ATI 0x877A
#endif //GL_DU8DV8_ATI
#ifndef GL_BUMP_ENVMAP_ATI
#define GL_BUMP_ENVMAP_ATI 0x877B
#endif //GL_BUMP_ENVMAP_ATI
#ifndef GL_BUMP_TARGET_ATI
#define GL_BUMP_TARGET_ATI 0x877C
#endif //GL_BUMP_TARGET_ATI
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETTEXBUMPPARAMETERFVATIPROC_HPP)(GLenum,GLfloat *);
static inline void GetTexBumpParameterfvATI(GLenum pname1,GLfloat * param1)
{
	static PFNGLGETTEXBUMPPARAMETERFVATIPROC_HPP fn=reinterpret_cast<PFNGLGETTEXBUMPPARAMETERFVATIPROC_HPP>(_impl::_get_proc_address("glGetTexBumpParameterfvATI","GL_ATI_envmap_bumpmap"));
	 fn(pname1,param1);
}
typedef void (*PFNGLGETTEXBUMPPARAMETERIVATIPROC_HPP)(GLenum,GLint *);
static inline void GetTexBumpParameterivATI(GLenum pname1,GLint * param1)
{
	static PFNGLGETTEXBUMPPARAMETERIVATIPROC_HPP fn=reinterpret_cast<PFNGLGETTEXBUMPPARAMETERIVATIPROC_HPP>(_impl::_get_proc_address("glGetTexBumpParameterivATI","GL_ATI_envmap_bumpmap"));
	 fn(pname1,param1);
}
typedef void (*PFNGLTEXBUMPPARAMETERFVATIPROC_HPP)(GLenum,const GLfloat *);
static inline void TexBumpParameterfvATI(GLenum pname1,const GLfloat * param1)
{
	static PFNGLTEXBUMPPARAMETERFVATIPROC_HPP fn=reinterpret_cast<PFNGLTEXBUMPPARAMETERFVATIPROC_HPP>(_impl::_get_proc_address("glTexBumpParameterfvATI","GL_ATI_envmap_bumpmap"));
	 fn(pname1,param1);
}
typedef void (*PFNGLTEXBUMPPARAMETERIVATIPROC_HPP)(GLenum,const GLint *);
static inline void TexBumpParameterivATI(GLenum pname1,const GLint * param1)
{
	static PFNGLTEXBUMPPARAMETERIVATIPROC_HPP fn=reinterpret_cast<PFNGLTEXBUMPPARAMETERIVATIPROC_HPP>(_impl::_get_proc_address("glTexBumpParameterivATI","GL_ATI_envmap_bumpmap"));
	 fn(pname1,param1);
}}
#endif

#ifndef GL_ATI_fragment_shader
#define GL_ATI_fragment_shader
#ifndef GL_RED_BIT_ATI
#define GL_RED_BIT_ATI 0x00000001
#endif //GL_RED_BIT_ATI
#ifndef GL_2X_BIT_ATI
#define GL_2X_BIT_ATI 0x00000001
#endif //GL_2X_BIT_ATI
#ifndef GL_GREEN_BIT_ATI
#define GL_GREEN_BIT_ATI 0x00000002
#endif //GL_GREEN_BIT_ATI
#ifndef GL_COMP_BIT_ATI
#define GL_COMP_BIT_ATI 0x00000002
#endif //GL_COMP_BIT_ATI
#ifndef GL_4X_BIT_ATI
#define GL_4X_BIT_ATI 0x00000002
#endif //GL_4X_BIT_ATI
#ifndef GL_8X_BIT_ATI
#define GL_8X_BIT_ATI 0x00000004
#endif //GL_8X_BIT_ATI
#ifndef GL_NEGATE_BIT_ATI
#define GL_NEGATE_BIT_ATI 0x00000004
#endif //GL_NEGATE_BIT_ATI
#ifndef GL_BLUE_BIT_ATI
#define GL_BLUE_BIT_ATI 0x00000004
#endif //GL_BLUE_BIT_ATI
#ifndef GL_HALF_BIT_ATI
#define GL_HALF_BIT_ATI 0x00000008
#endif //GL_HALF_BIT_ATI
#ifndef GL_BIAS_BIT_ATI
#define GL_BIAS_BIT_ATI 0x00000008
#endif //GL_BIAS_BIT_ATI
#ifndef GL_QUARTER_BIT_ATI
#define GL_QUARTER_BIT_ATI 0x00000010
#endif //GL_QUARTER_BIT_ATI
#ifndef GL_EIGHTH_BIT_ATI
#define GL_EIGHTH_BIT_ATI 0x00000020
#endif //GL_EIGHTH_BIT_ATI
#ifndef GL_SATURATE_BIT_ATI
#define GL_SATURATE_BIT_ATI 0x00000040
#endif //GL_SATURATE_BIT_ATI
#ifndef GL_FRAGMENT_SHADER_ATI
#define GL_FRAGMENT_SHADER_ATI 0x8920
#endif //GL_FRAGMENT_SHADER_ATI
#ifndef GL_REG_0_ATI
#define GL_REG_0_ATI 0x8921
#endif //GL_REG_0_ATI
#ifndef GL_REG_1_ATI
#define GL_REG_1_ATI 0x8922
#endif //GL_REG_1_ATI
#ifndef GL_REG_2_ATI
#define GL_REG_2_ATI 0x8923
#endif //GL_REG_2_ATI
#ifndef GL_REG_3_ATI
#define GL_REG_3_ATI 0x8924
#endif //GL_REG_3_ATI
#ifndef GL_REG_4_ATI
#define GL_REG_4_ATI 0x8925
#endif //GL_REG_4_ATI
#ifndef GL_REG_5_ATI
#define GL_REG_5_ATI 0x8926
#endif //GL_REG_5_ATI
#ifndef GL_REG_6_ATI
#define GL_REG_6_ATI 0x8927
#endif //GL_REG_6_ATI
#ifndef GL_REG_7_ATI
#define GL_REG_7_ATI 0x8928
#endif //GL_REG_7_ATI
#ifndef GL_REG_8_ATI
#define GL_REG_8_ATI 0x8929
#endif //GL_REG_8_ATI
#ifndef GL_REG_9_ATI
#define GL_REG_9_ATI 0x892A
#endif //GL_REG_9_ATI
#ifndef GL_REG_10_ATI
#define GL_REG_10_ATI 0x892B
#endif //GL_REG_10_ATI
#ifndef GL_REG_11_ATI
#define GL_REG_11_ATI 0x892C
#endif //GL_REG_11_ATI
#ifndef GL_REG_12_ATI
#define GL_REG_12_ATI 0x892D
#endif //GL_REG_12_ATI
#ifndef GL_REG_13_ATI
#define GL_REG_13_ATI 0x892E
#endif //GL_REG_13_ATI
#ifndef GL_REG_14_ATI
#define GL_REG_14_ATI 0x892F
#endif //GL_REG_14_ATI
#ifndef GL_REG_15_ATI
#define GL_REG_15_ATI 0x8930
#endif //GL_REG_15_ATI
#ifndef GL_REG_16_ATI
#define GL_REG_16_ATI 0x8931
#endif //GL_REG_16_ATI
#ifndef GL_REG_17_ATI
#define GL_REG_17_ATI 0x8932
#endif //GL_REG_17_ATI
#ifndef GL_REG_18_ATI
#define GL_REG_18_ATI 0x8933
#endif //GL_REG_18_ATI
#ifndef GL_REG_19_ATI
#define GL_REG_19_ATI 0x8934
#endif //GL_REG_19_ATI
#ifndef GL_REG_20_ATI
#define GL_REG_20_ATI 0x8935
#endif //GL_REG_20_ATI
#ifndef GL_REG_21_ATI
#define GL_REG_21_ATI 0x8936
#endif //GL_REG_21_ATI
#ifndef GL_REG_22_ATI
#define GL_REG_22_ATI 0x8937
#endif //GL_REG_22_ATI
#ifndef GL_REG_23_ATI
#define GL_REG_23_ATI 0x8938
#endif //GL_REG_23_ATI
#ifndef GL_REG_24_ATI
#define GL_REG_24_ATI 0x8939
#endif //GL_REG_24_ATI
#ifndef GL_REG_25_ATI
#define GL_REG_25_ATI 0x893A
#endif //GL_REG_25_ATI
#ifndef GL_REG_26_ATI
#define GL_REG_26_ATI 0x893B
#endif //GL_REG_26_ATI
#ifndef GL_REG_27_ATI
#define GL_REG_27_ATI 0x893C
#endif //GL_REG_27_ATI
#ifndef GL_REG_28_ATI
#define GL_REG_28_ATI 0x893D
#endif //GL_REG_28_ATI
#ifndef GL_REG_29_ATI
#define GL_REG_29_ATI 0x893E
#endif //GL_REG_29_ATI
#ifndef GL_REG_30_ATI
#define GL_REG_30_ATI 0x893F
#endif //GL_REG_30_ATI
#ifndef GL_REG_31_ATI
#define GL_REG_31_ATI 0x8940
#endif //GL_REG_31_ATI
#ifndef GL_CON_0_ATI
#define GL_CON_0_ATI 0x8941
#endif //GL_CON_0_ATI
#ifndef GL_CON_1_ATI
#define GL_CON_1_ATI 0x8942
#endif //GL_CON_1_ATI
#ifndef GL_CON_2_ATI
#define GL_CON_2_ATI 0x8943
#endif //GL_CON_2_ATI
#ifndef GL_CON_3_ATI
#define GL_CON_3_ATI 0x8944
#endif //GL_CON_3_ATI
#ifndef GL_CON_4_ATI
#define GL_CON_4_ATI 0x8945
#endif //GL_CON_4_ATI
#ifndef GL_CON_5_ATI
#define GL_CON_5_ATI 0x8946
#endif //GL_CON_5_ATI
#ifndef GL_CON_6_ATI
#define GL_CON_6_ATI 0x8947
#endif //GL_CON_6_ATI
#ifndef GL_CON_7_ATI
#define GL_CON_7_ATI 0x8948
#endif //GL_CON_7_ATI
#ifndef GL_CON_8_ATI
#define GL_CON_8_ATI 0x8949
#endif //GL_CON_8_ATI
#ifndef GL_CON_9_ATI
#define GL_CON_9_ATI 0x894A
#endif //GL_CON_9_ATI
#ifndef GL_CON_10_ATI
#define GL_CON_10_ATI 0x894B
#endif //GL_CON_10_ATI
#ifndef GL_CON_11_ATI
#define GL_CON_11_ATI 0x894C
#endif //GL_CON_11_ATI
#ifndef GL_CON_12_ATI
#define GL_CON_12_ATI 0x894D
#endif //GL_CON_12_ATI
#ifndef GL_CON_13_ATI
#define GL_CON_13_ATI 0x894E
#endif //GL_CON_13_ATI
#ifndef GL_CON_14_ATI
#define GL_CON_14_ATI 0x894F
#endif //GL_CON_14_ATI
#ifndef GL_CON_15_ATI
#define GL_CON_15_ATI 0x8950
#endif //GL_CON_15_ATI
#ifndef GL_CON_16_ATI
#define GL_CON_16_ATI 0x8951
#endif //GL_CON_16_ATI
#ifndef GL_CON_17_ATI
#define GL_CON_17_ATI 0x8952
#endif //GL_CON_17_ATI
#ifndef GL_CON_18_ATI
#define GL_CON_18_ATI 0x8953
#endif //GL_CON_18_ATI
#ifndef GL_CON_19_ATI
#define GL_CON_19_ATI 0x8954
#endif //GL_CON_19_ATI
#ifndef GL_CON_20_ATI
#define GL_CON_20_ATI 0x8955
#endif //GL_CON_20_ATI
#ifndef GL_CON_21_ATI
#define GL_CON_21_ATI 0x8956
#endif //GL_CON_21_ATI
#ifndef GL_CON_22_ATI
#define GL_CON_22_ATI 0x8957
#endif //GL_CON_22_ATI
#ifndef GL_CON_23_ATI
#define GL_CON_23_ATI 0x8958
#endif //GL_CON_23_ATI
#ifndef GL_CON_24_ATI
#define GL_CON_24_ATI 0x8959
#endif //GL_CON_24_ATI
#ifndef GL_CON_25_ATI
#define GL_CON_25_ATI 0x895A
#endif //GL_CON_25_ATI
#ifndef GL_CON_26_ATI
#define GL_CON_26_ATI 0x895B
#endif //GL_CON_26_ATI
#ifndef GL_CON_27_ATI
#define GL_CON_27_ATI 0x895C
#endif //GL_CON_27_ATI
#ifndef GL_CON_28_ATI
#define GL_CON_28_ATI 0x895D
#endif //GL_CON_28_ATI
#ifndef GL_CON_29_ATI
#define GL_CON_29_ATI 0x895E
#endif //GL_CON_29_ATI
#ifndef GL_CON_30_ATI
#define GL_CON_30_ATI 0x895F
#endif //GL_CON_30_ATI
#ifndef GL_CON_31_ATI
#define GL_CON_31_ATI 0x8960
#endif //GL_CON_31_ATI
#ifndef GL_MOV_ATI
#define GL_MOV_ATI 0x8961
#endif //GL_MOV_ATI
#ifndef GL_ADD_ATI
#define GL_ADD_ATI 0x8963
#endif //GL_ADD_ATI
#ifndef GL_MUL_ATI
#define GL_MUL_ATI 0x8964
#endif //GL_MUL_ATI
#ifndef GL_SUB_ATI
#define GL_SUB_ATI 0x8965
#endif //GL_SUB_ATI
#ifndef GL_DOT3_ATI
#define GL_DOT3_ATI 0x8966
#endif //GL_DOT3_ATI
#ifndef GL_DOT4_ATI
#define GL_DOT4_ATI 0x8967
#endif //GL_DOT4_ATI
#ifndef GL_MAD_ATI
#define GL_MAD_ATI 0x8968
#endif //GL_MAD_ATI
#ifndef GL_LERP_ATI
#define GL_LERP_ATI 0x8969
#endif //GL_LERP_ATI
#ifndef GL_CND_ATI
#define GL_CND_ATI 0x896A
#endif //GL_CND_ATI
#ifndef GL_CND0_ATI
#define GL_CND0_ATI 0x896B
#endif //GL_CND0_ATI
#ifndef GL_DOT2_ADD_ATI
#define GL_DOT2_ADD_ATI 0x896C
#endif //GL_DOT2_ADD_ATI
#ifndef GL_SECONDARY_INTERPOLATOR_ATI
#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D
#endif //GL_SECONDARY_INTERPOLATOR_ATI
#ifndef GL_NUM_FRAGMENT_REGISTERS_ATI
#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E
#endif //GL_NUM_FRAGMENT_REGISTERS_ATI
#ifndef GL_NUM_FRAGMENT_CONSTANTS_ATI
#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F
#endif //GL_NUM_FRAGMENT_CONSTANTS_ATI
#ifndef GL_NUM_PASSES_ATI
#define GL_NUM_PASSES_ATI 0x8970
#endif //GL_NUM_PASSES_ATI
#ifndef GL_NUM_INSTRUCTIONS_PER_PASS_ATI
#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971
#endif //GL_NUM_INSTRUCTIONS_PER_PASS_ATI
#ifndef GL_NUM_INSTRUCTIONS_TOTAL_ATI
#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972
#endif //GL_NUM_INSTRUCTIONS_TOTAL_ATI
#ifndef GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973
#endif //GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
#ifndef GL_NUM_LOOPBACK_COMPONENTS_ATI
#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974
#endif //GL_NUM_LOOPBACK_COMPONENTS_ATI
#ifndef GL_COLOR_ALPHA_PAIRING_ATI
#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975
#endif //GL_COLOR_ALPHA_PAIRING_ATI
#ifndef GL_SWIZZLE_STR_ATI
#define GL_SWIZZLE_STR_ATI 0x8976
#endif //GL_SWIZZLE_STR_ATI
#ifndef GL_SWIZZLE_STQ_ATI
#define GL_SWIZZLE_STQ_ATI 0x8977
#endif //GL_SWIZZLE_STQ_ATI
#ifndef GL_SWIZZLE_STR_DR_ATI
#define GL_SWIZZLE_STR_DR_ATI 0x8978
#endif //GL_SWIZZLE_STR_DR_ATI
#ifndef GL_SWIZZLE_STQ_DQ_ATI
#define GL_SWIZZLE_STQ_DQ_ATI 0x8979
#endif //GL_SWIZZLE_STQ_DQ_ATI
#ifndef GL_SWIZZLE_STRQ_ATI
#define GL_SWIZZLE_STRQ_ATI 0x897A
#endif //GL_SWIZZLE_STRQ_ATI
#ifndef GL_SWIZZLE_STRQ_DQ_ATI
#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B
#endif //GL_SWIZZLE_STRQ_DQ_ATI
extern "C" {
}
namespace gl{

typedef void (*PFNGLALPHAFRAGMENTOP1ATIPROC_HPP)(GLenum,GLuint,GLuint,GLuint,GLuint,GLuint);
static inline void AlphaFragmentOp1ATI(GLenum op1,GLuint dst1,GLuint dstMod1,GLuint arg11,GLuint arg1Rep1,GLuint arg1Mod1)
{
	static PFNGLALPHAFRAGMENTOP1ATIPROC_HPP fn=reinterpret_cast<PFNGLALPHAFRAGMENTOP1ATIPROC_HPP>(_impl::_get_proc_address("glAlphaFragmentOp1ATI","GL_ATI_fragment_shader"));
	 fn(op1,dst1,dstMod1,arg11,arg1Rep1,arg1Mod1);
}
typedef void (*PFNGLALPHAFRAGMENTOP2ATIPROC_HPP)(GLenum,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint);
static inline void AlphaFragmentOp2ATI(GLenum op1,GLuint dst1,GLuint dstMod1,GLuint arg11,GLuint arg1Rep1,GLuint arg1Mod1,GLuint arg21,GLuint arg2Rep1,GLuint arg2Mod1)
{
	static PFNGLALPHAFRAGMENTOP2ATIPROC_HPP fn=reinterpret_cast<PFNGLALPHAFRAGMENTOP2ATIPROC_HPP>(_impl::_get_proc_address("glAlphaFragmentOp2ATI","GL_ATI_fragment_shader"));
	 fn(op1,dst1,dstMod1,arg11,arg1Rep1,arg1Mod1,arg21,arg2Rep1,arg2Mod1);
}
typedef void (*PFNGLALPHAFRAGMENTOP3ATIPROC_HPP)(GLenum,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint);
static inline void AlphaFragmentOp3ATI(GLenum op1,GLuint dst1,GLuint dstMod1,GLuint arg11,GLuint arg1Rep1,GLuint arg1Mod1,GLuint arg21,GLuint arg2Rep1,GLuint arg2Mod1,GLuint arg31,GLuint arg3Rep1,GLuint arg3Mod1)
{
	static PFNGLALPHAFRAGMENTOP3ATIPROC_HPP fn=reinterpret_cast<PFNGLALPHAFRAGMENTOP3ATIPROC_HPP>(_impl::_get_proc_address("glAlphaFragmentOp3ATI","GL_ATI_fragment_shader"));
	 fn(op1,dst1,dstMod1,arg11,arg1Rep1,arg1Mod1,arg21,arg2Rep1,arg2Mod1,arg31,arg3Rep1,arg3Mod1);
}
typedef void (*PFNGLBEGINFRAGMENTSHADERATIPROC_HPP)();
static inline void BeginFragmentShaderATI()
{
	static PFNGLBEGINFRAGMENTSHADERATIPROC_HPP fn=reinterpret_cast<PFNGLBEGINFRAGMENTSHADERATIPROC_HPP>(_impl::_get_proc_address("glBeginFragmentShaderATI","GL_ATI_fragment_shader"));
	 fn();
}
typedef void (*PFNGLBINDFRAGMENTSHADERATIPROC_HPP)(GLuint);
static inline void BindFragmentShaderATI(GLuint id1)
{
	static PFNGLBINDFRAGMENTSHADERATIPROC_HPP fn=reinterpret_cast<PFNGLBINDFRAGMENTSHADERATIPROC_HPP>(_impl::_get_proc_address("glBindFragmentShaderATI","GL_ATI_fragment_shader"));
	 fn(id1);
}
typedef void (*PFNGLCOLORFRAGMENTOP1ATIPROC_HPP)(GLenum,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint);
static inline void ColorFragmentOp1ATI(GLenum op1,GLuint dst1,GLuint dstMask1,GLuint dstMod1,GLuint arg11,GLuint arg1Rep1,GLuint arg1Mod1)
{
	static PFNGLCOLORFRAGMENTOP1ATIPROC_HPP fn=reinterpret_cast<PFNGLCOLORFRAGMENTOP1ATIPROC_HPP>(_impl::_get_proc_address("glColorFragmentOp1ATI","GL_ATI_fragment_shader"));
	 fn(op1,dst1,dstMask1,dstMod1,arg11,arg1Rep1,arg1Mod1);
}
typedef void (*PFNGLCOLORFRAGMENTOP2ATIPROC_HPP)(GLenum,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint);
static inline void ColorFragmentOp2ATI(GLenum op1,GLuint dst1,GLuint dstMask1,GLuint dstMod1,GLuint arg11,GLuint arg1Rep1,GLuint arg1Mod1,GLuint arg21,GLuint arg2Rep1,GLuint arg2Mod1)
{
	static PFNGLCOLORFRAGMENTOP2ATIPROC_HPP fn=reinterpret_cast<PFNGLCOLORFRAGMENTOP2ATIPROC_HPP>(_impl::_get_proc_address("glColorFragmentOp2ATI","GL_ATI_fragment_shader"));
	 fn(op1,dst1,dstMask1,dstMod1,arg11,arg1Rep1,arg1Mod1,arg21,arg2Rep1,arg2Mod1);
}
typedef void (*PFNGLCOLORFRAGMENTOP3ATIPROC_HPP)(GLenum,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint,GLuint);
static inline void ColorFragmentOp3ATI(GLenum op1,GLuint dst1,GLuint dstMask1,GLuint dstMod1,GLuint arg11,GLuint arg1Rep1,GLuint arg1Mod1,GLuint arg21,GLuint arg2Rep1,GLuint arg2Mod1,GLuint arg31,GLuint arg3Rep1,GLuint arg3Mod1)
{
	static PFNGLCOLORFRAGMENTOP3ATIPROC_HPP fn=reinterpret_cast<PFNGLCOLORFRAGMENTOP3ATIPROC_HPP>(_impl::_get_proc_address("glColorFragmentOp3ATI","GL_ATI_fragment_shader"));
	 fn(op1,dst1,dstMask1,dstMod1,arg11,arg1Rep1,arg1Mod1,arg21,arg2Rep1,arg2Mod1,arg31,arg3Rep1,arg3Mod1);
}
typedef void (*PFNGLDELETEFRAGMENTSHADERATIPROC_HPP)(GLuint);
static inline void DeleteFragmentShaderATI(GLuint id1)
{
	static PFNGLDELETEFRAGMENTSHADERATIPROC_HPP fn=reinterpret_cast<PFNGLDELETEFRAGMENTSHADERATIPROC_HPP>(_impl::_get_proc_address("glDeleteFragmentShaderATI","GL_ATI_fragment_shader"));
	 fn(id1);
}
typedef void (*PFNGLENDFRAGMENTSHADERATIPROC_HPP)();
static inline void EndFragmentShaderATI()
{
	static PFNGLENDFRAGMENTSHADERATIPROC_HPP fn=reinterpret_cast<PFNGLENDFRAGMENTSHADERATIPROC_HPP>(_impl::_get_proc_address("glEndFragmentShaderATI","GL_ATI_fragment_shader"));
	 fn();
}
typedef GLuint (*PFNGLGENFRAGMENTSHADERSATIPROC_HPP)(GLuint);
static inline GLuint GenFragmentShadersATI(GLuint range1)
{
	static PFNGLGENFRAGMENTSHADERSATIPROC_HPP fn=reinterpret_cast<PFNGLGENFRAGMENTSHADERSATIPROC_HPP>(_impl::_get_proc_address("glGenFragmentShadersATI","GL_ATI_fragment_shader"));
	return fn(range1);
}
typedef void (*PFNGLPASSTEXCOORDATIPROC_HPP)(GLuint,GLuint,GLenum);
static inline void PassTexCoordATI(GLuint dst1,GLuint coord1,GLenum swizzle1)
{
	static PFNGLPASSTEXCOORDATIPROC_HPP fn=reinterpret_cast<PFNGLPASSTEXCOORDATIPROC_HPP>(_impl::_get_proc_address("glPassTexCoordATI","GL_ATI_fragment_shader"));
	 fn(dst1,coord1,swizzle1);
}
typedef void (*PFNGLSAMPLEMAPATIPROC_HPP)(GLuint,GLuint,GLenum);
static inline void SampleMapATI(GLuint dst1,GLuint interp1,GLenum swizzle1)
{
	static PFNGLSAMPLEMAPATIPROC_HPP fn=reinterpret_cast<PFNGLSAMPLEMAPATIPROC_HPP>(_impl::_get_proc_address("glSampleMapATI","GL_ATI_fragment_shader"));
	 fn(dst1,interp1,swizzle1);
}
typedef void (*PFNGLSETFRAGMENTSHADERCONSTANTATIPROC_HPP)(GLuint,const GLfloat *);
static inline void SetFragmentShaderConstantATI(GLuint dst1,const GLfloat * value1)
{
	static PFNGLSETFRAGMENTSHADERCONSTANTATIPROC_HPP fn=reinterpret_cast<PFNGLSETFRAGMENTSHADERCONSTANTATIPROC_HPP>(_impl::_get_proc_address("glSetFragmentShaderConstantATI","GL_ATI_fragment_shader"));
	 fn(dst1,value1);
}}
#endif

#ifndef GL_ATI_map_object_buffer
#define GL_ATI_map_object_buffer
extern "C" {
}
namespace gl{

typedef void * (*PFNGLMAPOBJECTBUFFERATIPROC_HPP)(GLuint);
static inline void * MapObjectBufferATI(GLuint buffer1)
{
	static PFNGLMAPOBJECTBUFFERATIPROC_HPP fn=reinterpret_cast<PFNGLMAPOBJECTBUFFERATIPROC_HPP>(_impl::_get_proc_address("glMapObjectBufferATI","GL_ATI_map_object_buffer"));
	return fn(buffer1);
}
typedef void (*PFNGLUNMAPOBJECTBUFFERATIPROC_HPP)(GLuint);
static inline void UnmapObjectBufferATI(GLuint buffer1)
{
	static PFNGLUNMAPOBJECTBUFFERATIPROC_HPP fn=reinterpret_cast<PFNGLUNMAPOBJECTBUFFERATIPROC_HPP>(_impl::_get_proc_address("glUnmapObjectBufferATI","GL_ATI_map_object_buffer"));
	 fn(buffer1);
}}
#endif

#ifndef GL_ATI_meminfo
#define GL_ATI_meminfo
#ifndef GL_VBO_FREE_MEMORY_ATI
#define GL_VBO_FREE_MEMORY_ATI 0x87FB
#endif //GL_VBO_FREE_MEMORY_ATI
#ifndef GL_TEXTURE_FREE_MEMORY_ATI
#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC
#endif //GL_TEXTURE_FREE_MEMORY_ATI
#ifndef GL_RENDERBUFFER_FREE_MEMORY_ATI
#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD
#endif //GL_RENDERBUFFER_FREE_MEMORY_ATI
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ATI_pixel_format_float
#define GL_ATI_pixel_format_float
#ifndef GL_RGBA_FLOAT_MODE_ATI
#define GL_RGBA_FLOAT_MODE_ATI 0x8820
#endif //GL_RGBA_FLOAT_MODE_ATI
#ifndef GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI
#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835
#endif //GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ATI_pn_triangles
#define GL_ATI_pn_triangles
#ifndef GL_PN_TRIANGLES_ATI
#define GL_PN_TRIANGLES_ATI 0x87F0
#endif //GL_PN_TRIANGLES_ATI
#ifndef GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI
#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1
#endif //GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI
#ifndef GL_PN_TRIANGLES_POINT_MODE_ATI
#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2
#endif //GL_PN_TRIANGLES_POINT_MODE_ATI
#ifndef GL_PN_TRIANGLES_NORMAL_MODE_ATI
#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3
#endif //GL_PN_TRIANGLES_NORMAL_MODE_ATI
#ifndef GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI
#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4
#endif //GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI
#ifndef GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI
#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5
#endif //GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI
#ifndef GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI
#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6
#endif //GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI
#ifndef GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI
#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7
#endif //GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI
#ifndef GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI
#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8
#endif //GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI
extern "C" {
}
namespace gl{

typedef void (*PFNGLPNTRIANGLESFATIPROC_HPP)(GLenum,GLfloat);
static inline void PNTrianglesfATI(GLenum pname1,GLfloat param1)
{
	static PFNGLPNTRIANGLESFATIPROC_HPP fn=reinterpret_cast<PFNGLPNTRIANGLESFATIPROC_HPP>(_impl::_get_proc_address("glPNTrianglesfATI","GL_ATI_pn_triangles"));
	 fn(pname1,param1);
}
typedef void (*PFNGLPNTRIANGLESIATIPROC_HPP)(GLenum,GLint);
static inline void PNTrianglesiATI(GLenum pname1,GLint param1)
{
	static PFNGLPNTRIANGLESIATIPROC_HPP fn=reinterpret_cast<PFNGLPNTRIANGLESIATIPROC_HPP>(_impl::_get_proc_address("glPNTrianglesiATI","GL_ATI_pn_triangles"));
	 fn(pname1,param1);
}}
#endif

#ifndef GL_ATI_separate_stencil
#define GL_ATI_separate_stencil
#ifndef GL_STENCIL_BACK_FUNC_ATI
#define GL_STENCIL_BACK_FUNC_ATI 0x8800
#endif //GL_STENCIL_BACK_FUNC_ATI
#ifndef GL_STENCIL_BACK_FAIL_ATI
#define GL_STENCIL_BACK_FAIL_ATI 0x8801
#endif //GL_STENCIL_BACK_FAIL_ATI
#ifndef GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI
#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802
#endif //GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI
#ifndef GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI
#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803
#endif //GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI
extern "C" {
}
namespace gl{

typedef void (*PFNGLSTENCILFUNCSEPARATEATIPROC_HPP)(GLenum,GLenum,GLint,GLuint);
static inline void StencilFuncSeparateATI(GLenum frontfunc1,GLenum backfunc1,GLint ref1,GLuint mask1)
{
	static PFNGLSTENCILFUNCSEPARATEATIPROC_HPP fn=reinterpret_cast<PFNGLSTENCILFUNCSEPARATEATIPROC_HPP>(_impl::_get_proc_address("glStencilFuncSeparateATI","GL_ATI_separate_stencil"));
	 fn(frontfunc1,backfunc1,ref1,mask1);
}
typedef void (*PFNGLSTENCILOPSEPARATEATIPROC_HPP)(GLenum,GLenum,GLenum,GLenum);
static inline void StencilOpSeparateATI(GLenum face1,GLenum sfail1,GLenum dpfail1,GLenum dppass1)
{
	static PFNGLSTENCILOPSEPARATEATIPROC_HPP fn=reinterpret_cast<PFNGLSTENCILOPSEPARATEATIPROC_HPP>(_impl::_get_proc_address("glStencilOpSeparateATI","GL_ATI_separate_stencil"));
	 fn(face1,sfail1,dpfail1,dppass1);
}}
#endif

#ifndef GL_ATI_text_fragment_shader
#define GL_ATI_text_fragment_shader
#ifndef GL_TEXT_FRAGMENT_SHADER_ATI
#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200
#endif //GL_TEXT_FRAGMENT_SHADER_ATI
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ATI_texture_env_combine3
#define GL_ATI_texture_env_combine3
#ifndef GL_MODULATE_ADD_ATI
#define GL_MODULATE_ADD_ATI 0x8744
#endif //GL_MODULATE_ADD_ATI
#ifndef GL_MODULATE_SIGNED_ADD_ATI
#define GL_MODULATE_SIGNED_ADD_ATI 0x8745
#endif //GL_MODULATE_SIGNED_ADD_ATI
#ifndef GL_MODULATE_SUBTRACT_ATI
#define GL_MODULATE_SUBTRACT_ATI 0x8746
#endif //GL_MODULATE_SUBTRACT_ATI
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ATI_texture_float
#define GL_ATI_texture_float
#ifndef GL_RGBA_FLOAT32_ATI
#define GL_RGBA_FLOAT32_ATI 0x8814
#endif //GL_RGBA_FLOAT32_ATI
#ifndef GL_RGB_FLOAT32_ATI
#define GL_RGB_FLOAT32_ATI 0x8815
#endif //GL_RGB_FLOAT32_ATI
#ifndef GL_ALPHA_FLOAT32_ATI
#define GL_ALPHA_FLOAT32_ATI 0x8816
#endif //GL_ALPHA_FLOAT32_ATI
#ifndef GL_INTENSITY_FLOAT32_ATI
#define GL_INTENSITY_FLOAT32_ATI 0x8817
#endif //GL_INTENSITY_FLOAT32_ATI
#ifndef GL_LUMINANCE_FLOAT32_ATI
#define GL_LUMINANCE_FLOAT32_ATI 0x8818
#endif //GL_LUMINANCE_FLOAT32_ATI
#ifndef GL_LUMINANCE_ALPHA_FLOAT32_ATI
#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819
#endif //GL_LUMINANCE_ALPHA_FLOAT32_ATI
#ifndef GL_RGBA_FLOAT16_ATI
#define GL_RGBA_FLOAT16_ATI 0x881A
#endif //GL_RGBA_FLOAT16_ATI
#ifndef GL_RGB_FLOAT16_ATI
#define GL_RGB_FLOAT16_ATI 0x881B
#endif //GL_RGB_FLOAT16_ATI
#ifndef GL_ALPHA_FLOAT16_ATI
#define GL_ALPHA_FLOAT16_ATI 0x881C
#endif //GL_ALPHA_FLOAT16_ATI
#ifndef GL_INTENSITY_FLOAT16_ATI
#define GL_INTENSITY_FLOAT16_ATI 0x881D
#endif //GL_INTENSITY_FLOAT16_ATI
#ifndef GL_LUMINANCE_FLOAT16_ATI
#define GL_LUMINANCE_FLOAT16_ATI 0x881E
#endif //GL_LUMINANCE_FLOAT16_ATI
#ifndef GL_LUMINANCE_ALPHA_FLOAT16_ATI
#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F
#endif //GL_LUMINANCE_ALPHA_FLOAT16_ATI
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ATI_texture_mirror_once
#define GL_ATI_texture_mirror_once
#ifndef GL_MIRROR_CLAMP_ATI
#define GL_MIRROR_CLAMP_ATI 0x8742
#endif //GL_MIRROR_CLAMP_ATI
#ifndef GL_MIRROR_CLAMP_TO_EDGE_ATI
#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743
#endif //GL_MIRROR_CLAMP_TO_EDGE_ATI
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_ATI_vertex_array_object
#define GL_ATI_vertex_array_object
#ifndef GL_STATIC_ATI
#define GL_STATIC_ATI 0x8760
#endif //GL_STATIC_ATI
#ifndef GL_DYNAMIC_ATI
#define GL_DYNAMIC_ATI 0x8761
#endif //GL_DYNAMIC_ATI
#ifndef GL_PRESERVE_ATI
#define GL_PRESERVE_ATI 0x8762
#endif //GL_PRESERVE_ATI
#ifndef GL_DISCARD_ATI
#define GL_DISCARD_ATI 0x8763
#endif //GL_DISCARD_ATI
#ifndef GL_OBJECT_BUFFER_SIZE_ATI
#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764
#endif //GL_OBJECT_BUFFER_SIZE_ATI
#ifndef GL_OBJECT_BUFFER_USAGE_ATI
#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765
#endif //GL_OBJECT_BUFFER_USAGE_ATI
#ifndef GL_ARRAY_OBJECT_BUFFER_ATI
#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766
#endif //GL_ARRAY_OBJECT_BUFFER_ATI
#ifndef GL_ARRAY_OBJECT_OFFSET_ATI
#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767
#endif //GL_ARRAY_OBJECT_OFFSET_ATI
extern "C" {
}
namespace gl{

typedef void (*PFNGLARRAYOBJECTATIPROC_HPP)(GLenum,GLint,GLenum,GLsizei,GLuint,GLuint);
static inline void ArrayObjectATI(GLenum array1,GLint size1,GLenum type1,GLsizei stride1,GLuint buffer1,GLuint offset1)
{
	static PFNGLARRAYOBJECTATIPROC_HPP fn=reinterpret_cast<PFNGLARRAYOBJECTATIPROC_HPP>(_impl::_get_proc_address("glArrayObjectATI","GL_ATI_vertex_array_object"));
	 fn(array1,size1,type1,stride1,buffer1,offset1);
}
typedef void (*PFNGLFREEOBJECTBUFFERATIPROC_HPP)(GLuint);
static inline void FreeObjectBufferATI(GLuint buffer1)
{
	static PFNGLFREEOBJECTBUFFERATIPROC_HPP fn=reinterpret_cast<PFNGLFREEOBJECTBUFFERATIPROC_HPP>(_impl::_get_proc_address("glFreeObjectBufferATI","GL_ATI_vertex_array_object"));
	 fn(buffer1);
}
typedef void (*PFNGLGETARRAYOBJECTFVATIPROC_HPP)(GLenum,GLenum,GLfloat *);
static inline void GetArrayObjectfvATI(GLenum array1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETARRAYOBJECTFVATIPROC_HPP fn=reinterpret_cast<PFNGLGETARRAYOBJECTFVATIPROC_HPP>(_impl::_get_proc_address("glGetArrayObjectfvATI","GL_ATI_vertex_array_object"));
	 fn(array1,pname1,params1);
}
typedef void (*PFNGLGETARRAYOBJECTIVATIPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetArrayObjectivATI(GLenum array1,GLenum pname1,GLint * params1)
{
	static PFNGLGETARRAYOBJECTIVATIPROC_HPP fn=reinterpret_cast<PFNGLGETARRAYOBJECTIVATIPROC_HPP>(_impl::_get_proc_address("glGetArrayObjectivATI","GL_ATI_vertex_array_object"));
	 fn(array1,pname1,params1);
}
typedef void (*PFNGLGETOBJECTBUFFERFVATIPROC_HPP)(GLuint,GLenum,GLfloat *);
static inline void GetObjectBufferfvATI(GLuint buffer1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETOBJECTBUFFERFVATIPROC_HPP fn=reinterpret_cast<PFNGLGETOBJECTBUFFERFVATIPROC_HPP>(_impl::_get_proc_address("glGetObjectBufferfvATI","GL_ATI_vertex_array_object"));
	 fn(buffer1,pname1,params1);
}
typedef void (*PFNGLGETOBJECTBUFFERIVATIPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetObjectBufferivATI(GLuint buffer1,GLenum pname1,GLint * params1)
{
	static PFNGLGETOBJECTBUFFERIVATIPROC_HPP fn=reinterpret_cast<PFNGLGETOBJECTBUFFERIVATIPROC_HPP>(_impl::_get_proc_address("glGetObjectBufferivATI","GL_ATI_vertex_array_object"));
	 fn(buffer1,pname1,params1);
}
typedef void (*PFNGLGETVARIANTARRAYOBJECTFVATIPROC_HPP)(GLuint,GLenum,GLfloat *);
static inline void GetVariantArrayObjectfvATI(GLuint id1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETVARIANTARRAYOBJECTFVATIPROC_HPP fn=reinterpret_cast<PFNGLGETVARIANTARRAYOBJECTFVATIPROC_HPP>(_impl::_get_proc_address("glGetVariantArrayObjectfvATI","GL_ATI_vertex_array_object"));
	 fn(id1,pname1,params1);
}
typedef void (*PFNGLGETVARIANTARRAYOBJECTIVATIPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetVariantArrayObjectivATI(GLuint id1,GLenum pname1,GLint * params1)
{
	static PFNGLGETVARIANTARRAYOBJECTIVATIPROC_HPP fn=reinterpret_cast<PFNGLGETVARIANTARRAYOBJECTIVATIPROC_HPP>(_impl::_get_proc_address("glGetVariantArrayObjectivATI","GL_ATI_vertex_array_object"));
	 fn(id1,pname1,params1);
}
typedef GLboolean (*PFNGLISOBJECTBUFFERATIPROC_HPP)(GLuint);
static inline GLboolean IsObjectBufferATI(GLuint buffer1)
{
	static PFNGLISOBJECTBUFFERATIPROC_HPP fn=reinterpret_cast<PFNGLISOBJECTBUFFERATIPROC_HPP>(_impl::_get_proc_address("glIsObjectBufferATI","GL_ATI_vertex_array_object"));
	return fn(buffer1);
}
typedef GLuint (*PFNGLNEWOBJECTBUFFERATIPROC_HPP)(GLsizei,const void *,GLenum);
static inline GLuint NewObjectBufferATI(GLsizei size1,const void * pointer1,GLenum usage1)
{
	static PFNGLNEWOBJECTBUFFERATIPROC_HPP fn=reinterpret_cast<PFNGLNEWOBJECTBUFFERATIPROC_HPP>(_impl::_get_proc_address("glNewObjectBufferATI","GL_ATI_vertex_array_object"));
	return fn(size1,pointer1,usage1);
}
typedef void (*PFNGLUPDATEOBJECTBUFFERATIPROC_HPP)(GLuint,GLuint,GLsizei,const void *,GLenum);
static inline void UpdateObjectBufferATI(GLuint buffer1,GLuint offset1,GLsizei size1,const void * pointer1,GLenum preserve1)
{
	static PFNGLUPDATEOBJECTBUFFERATIPROC_HPP fn=reinterpret_cast<PFNGLUPDATEOBJECTBUFFERATIPROC_HPP>(_impl::_get_proc_address("glUpdateObjectBufferATI","GL_ATI_vertex_array_object"));
	 fn(buffer1,offset1,size1,pointer1,preserve1);
}
typedef void (*PFNGLVARIANTARRAYOBJECTATIPROC_HPP)(GLuint,GLenum,GLsizei,GLuint,GLuint);
static inline void VariantArrayObjectATI(GLuint id1,GLenum type1,GLsizei stride1,GLuint buffer1,GLuint offset1)
{
	static PFNGLVARIANTARRAYOBJECTATIPROC_HPP fn=reinterpret_cast<PFNGLVARIANTARRAYOBJECTATIPROC_HPP>(_impl::_get_proc_address("glVariantArrayObjectATI","GL_ATI_vertex_array_object"));
	 fn(id1,type1,stride1,buffer1,offset1);
}}
#endif

#ifndef GL_ATI_vertex_attrib_array_object
#define GL_ATI_vertex_attrib_array_object
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC_HPP)(GLuint,GLenum,GLfloat *);
static inline void GetVertexAttribArrayObjectfvATI(GLuint index1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribArrayObjectfvATI","GL_ATI_vertex_attrib_array_object"));
	 fn(index1,pname1,params1);
}
typedef void (*PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetVertexAttribArrayObjectivATI(GLuint index1,GLenum pname1,GLint * params1)
{
	static PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribArrayObjectivATI","GL_ATI_vertex_attrib_array_object"));
	 fn(index1,pname1,params1);
}
typedef void (*PFNGLVERTEXATTRIBARRAYOBJECTATIPROC_HPP)(GLuint,GLint,GLenum,GLboolean,GLsizei,GLuint,GLuint);
static inline void VertexAttribArrayObjectATI(GLuint index1,GLint size1,GLenum type1,GLboolean normalized1,GLsizei stride1,GLuint buffer1,GLuint offset1)
{
	static PFNGLVERTEXATTRIBARRAYOBJECTATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBARRAYOBJECTATIPROC_HPP>(_impl::_get_proc_address("glVertexAttribArrayObjectATI","GL_ATI_vertex_attrib_array_object"));
	 fn(index1,size1,type1,normalized1,stride1,buffer1,offset1);
}}
#endif

#ifndef GL_ATI_vertex_streams
#define GL_ATI_vertex_streams
#ifndef GL_MAX_VERTEX_STREAMS_ATI
#define GL_MAX_VERTEX_STREAMS_ATI 0x876B
#endif //GL_MAX_VERTEX_STREAMS_ATI
#ifndef GL_VERTEX_STREAM0_ATI
#define GL_VERTEX_STREAM0_ATI 0x876C
#endif //GL_VERTEX_STREAM0_ATI
#ifndef GL_VERTEX_STREAM1_ATI
#define GL_VERTEX_STREAM1_ATI 0x876D
#endif //GL_VERTEX_STREAM1_ATI
#ifndef GL_VERTEX_STREAM2_ATI
#define GL_VERTEX_STREAM2_ATI 0x876E
#endif //GL_VERTEX_STREAM2_ATI
#ifndef GL_VERTEX_STREAM3_ATI
#define GL_VERTEX_STREAM3_ATI 0x876F
#endif //GL_VERTEX_STREAM3_ATI
#ifndef GL_VERTEX_STREAM4_ATI
#define GL_VERTEX_STREAM4_ATI 0x8770
#endif //GL_VERTEX_STREAM4_ATI
#ifndef GL_VERTEX_STREAM5_ATI
#define GL_VERTEX_STREAM5_ATI 0x8771
#endif //GL_VERTEX_STREAM5_ATI
#ifndef GL_VERTEX_STREAM6_ATI
#define GL_VERTEX_STREAM6_ATI 0x8772
#endif //GL_VERTEX_STREAM6_ATI
#ifndef GL_VERTEX_STREAM7_ATI
#define GL_VERTEX_STREAM7_ATI 0x8773
#endif //GL_VERTEX_STREAM7_ATI
#ifndef GL_VERTEX_SOURCE_ATI
#define GL_VERTEX_SOURCE_ATI 0x8774
#endif //GL_VERTEX_SOURCE_ATI
extern "C" {
}
namespace gl{

typedef void (*PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC_HPP)(GLenum);
static inline void ClientActiveVertexStreamATI(GLenum stream1)
{
	static PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC_HPP fn=reinterpret_cast<PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC_HPP>(_impl::_get_proc_address("glClientActiveVertexStreamATI","GL_ATI_vertex_streams"));
	 fn(stream1);
}
typedef void (*PFNGLNORMALSTREAM3BATIPROC_HPP)(GLenum,GLbyte,GLbyte,GLbyte);
static inline void NormalStream3bATI(GLenum stream1,GLbyte nx1,GLbyte ny1,GLbyte nz1)
{
	static PFNGLNORMALSTREAM3BATIPROC_HPP fn=reinterpret_cast<PFNGLNORMALSTREAM3BATIPROC_HPP>(_impl::_get_proc_address("glNormalStream3bATI","GL_ATI_vertex_streams"));
	 fn(stream1,nx1,ny1,nz1);
}
typedef void (*PFNGLNORMALSTREAM3BVATIPROC_HPP)(GLenum,const GLbyte *);
static inline void NormalStream3bvATI(GLenum stream1,const GLbyte * coords1)
{
	static PFNGLNORMALSTREAM3BVATIPROC_HPP fn=reinterpret_cast<PFNGLNORMALSTREAM3BVATIPROC_HPP>(_impl::_get_proc_address("glNormalStream3bvATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLNORMALSTREAM3DATIPROC_HPP)(GLenum,GLdouble,GLdouble,GLdouble);
static inline void NormalStream3dATI(GLenum stream1,GLdouble nx1,GLdouble ny1,GLdouble nz1)
{
	static PFNGLNORMALSTREAM3DATIPROC_HPP fn=reinterpret_cast<PFNGLNORMALSTREAM3DATIPROC_HPP>(_impl::_get_proc_address("glNormalStream3dATI","GL_ATI_vertex_streams"));
	 fn(stream1,nx1,ny1,nz1);
}
typedef void (*PFNGLNORMALSTREAM3DVATIPROC_HPP)(GLenum,const GLdouble *);
static inline void NormalStream3dvATI(GLenum stream1,const GLdouble * coords1)
{
	static PFNGLNORMALSTREAM3DVATIPROC_HPP fn=reinterpret_cast<PFNGLNORMALSTREAM3DVATIPROC_HPP>(_impl::_get_proc_address("glNormalStream3dvATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLNORMALSTREAM3FATIPROC_HPP)(GLenum,GLfloat,GLfloat,GLfloat);
static inline void NormalStream3fATI(GLenum stream1,GLfloat nx1,GLfloat ny1,GLfloat nz1)
{
	static PFNGLNORMALSTREAM3FATIPROC_HPP fn=reinterpret_cast<PFNGLNORMALSTREAM3FATIPROC_HPP>(_impl::_get_proc_address("glNormalStream3fATI","GL_ATI_vertex_streams"));
	 fn(stream1,nx1,ny1,nz1);
}
typedef void (*PFNGLNORMALSTREAM3FVATIPROC_HPP)(GLenum,const GLfloat *);
static inline void NormalStream3fvATI(GLenum stream1,const GLfloat * coords1)
{
	static PFNGLNORMALSTREAM3FVATIPROC_HPP fn=reinterpret_cast<PFNGLNORMALSTREAM3FVATIPROC_HPP>(_impl::_get_proc_address("glNormalStream3fvATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLNORMALSTREAM3IATIPROC_HPP)(GLenum,GLint,GLint,GLint);
static inline void NormalStream3iATI(GLenum stream1,GLint nx1,GLint ny1,GLint nz1)
{
	static PFNGLNORMALSTREAM3IATIPROC_HPP fn=reinterpret_cast<PFNGLNORMALSTREAM3IATIPROC_HPP>(_impl::_get_proc_address("glNormalStream3iATI","GL_ATI_vertex_streams"));
	 fn(stream1,nx1,ny1,nz1);
}
typedef void (*PFNGLNORMALSTREAM3IVATIPROC_HPP)(GLenum,const GLint *);
static inline void NormalStream3ivATI(GLenum stream1,const GLint * coords1)
{
	static PFNGLNORMALSTREAM3IVATIPROC_HPP fn=reinterpret_cast<PFNGLNORMALSTREAM3IVATIPROC_HPP>(_impl::_get_proc_address("glNormalStream3ivATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLNORMALSTREAM3SATIPROC_HPP)(GLenum,GLshort,GLshort,GLshort);
static inline void NormalStream3sATI(GLenum stream1,GLshort nx1,GLshort ny1,GLshort nz1)
{
	static PFNGLNORMALSTREAM3SATIPROC_HPP fn=reinterpret_cast<PFNGLNORMALSTREAM3SATIPROC_HPP>(_impl::_get_proc_address("glNormalStream3sATI","GL_ATI_vertex_streams"));
	 fn(stream1,nx1,ny1,nz1);
}
typedef void (*PFNGLNORMALSTREAM3SVATIPROC_HPP)(GLenum,const GLshort *);
static inline void NormalStream3svATI(GLenum stream1,const GLshort * coords1)
{
	static PFNGLNORMALSTREAM3SVATIPROC_HPP fn=reinterpret_cast<PFNGLNORMALSTREAM3SVATIPROC_HPP>(_impl::_get_proc_address("glNormalStream3svATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLVERTEXBLENDENVFATIPROC_HPP)(GLenum,GLfloat);
static inline void VertexBlendEnvfATI(GLenum pname1,GLfloat param1)
{
	static PFNGLVERTEXBLENDENVFATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXBLENDENVFATIPROC_HPP>(_impl::_get_proc_address("glVertexBlendEnvfATI","GL_ATI_vertex_streams"));
	 fn(pname1,param1);
}
typedef void (*PFNGLVERTEXBLENDENVIATIPROC_HPP)(GLenum,GLint);
static inline void VertexBlendEnviATI(GLenum pname1,GLint param1)
{
	static PFNGLVERTEXBLENDENVIATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXBLENDENVIATIPROC_HPP>(_impl::_get_proc_address("glVertexBlendEnviATI","GL_ATI_vertex_streams"));
	 fn(pname1,param1);
}
typedef void (*PFNGLVERTEXSTREAM1DATIPROC_HPP)(GLenum,GLdouble);
static inline void VertexStream1dATI(GLenum stream1,GLdouble x1)
{
	static PFNGLVERTEXSTREAM1DATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM1DATIPROC_HPP>(_impl::_get_proc_address("glVertexStream1dATI","GL_ATI_vertex_streams"));
	 fn(stream1,x1);
}
typedef void (*PFNGLVERTEXSTREAM1DVATIPROC_HPP)(GLenum,const GLdouble *);
static inline void VertexStream1dvATI(GLenum stream1,const GLdouble * coords1)
{
	static PFNGLVERTEXSTREAM1DVATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM1DVATIPROC_HPP>(_impl::_get_proc_address("glVertexStream1dvATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLVERTEXSTREAM1FATIPROC_HPP)(GLenum,GLfloat);
static inline void VertexStream1fATI(GLenum stream1,GLfloat x1)
{
	static PFNGLVERTEXSTREAM1FATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM1FATIPROC_HPP>(_impl::_get_proc_address("glVertexStream1fATI","GL_ATI_vertex_streams"));
	 fn(stream1,x1);
}
typedef void (*PFNGLVERTEXSTREAM1FVATIPROC_HPP)(GLenum,const GLfloat *);
static inline void VertexStream1fvATI(GLenum stream1,const GLfloat * coords1)
{
	static PFNGLVERTEXSTREAM1FVATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM1FVATIPROC_HPP>(_impl::_get_proc_address("glVertexStream1fvATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLVERTEXSTREAM1IATIPROC_HPP)(GLenum,GLint);
static inline void VertexStream1iATI(GLenum stream1,GLint x1)
{
	static PFNGLVERTEXSTREAM1IATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM1IATIPROC_HPP>(_impl::_get_proc_address("glVertexStream1iATI","GL_ATI_vertex_streams"));
	 fn(stream1,x1);
}
typedef void (*PFNGLVERTEXSTREAM1IVATIPROC_HPP)(GLenum,const GLint *);
static inline void VertexStream1ivATI(GLenum stream1,const GLint * coords1)
{
	static PFNGLVERTEXSTREAM1IVATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM1IVATIPROC_HPP>(_impl::_get_proc_address("glVertexStream1ivATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLVERTEXSTREAM1SATIPROC_HPP)(GLenum,GLshort);
static inline void VertexStream1sATI(GLenum stream1,GLshort x1)
{
	static PFNGLVERTEXSTREAM1SATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM1SATIPROC_HPP>(_impl::_get_proc_address("glVertexStream1sATI","GL_ATI_vertex_streams"));
	 fn(stream1,x1);
}
typedef void (*PFNGLVERTEXSTREAM1SVATIPROC_HPP)(GLenum,const GLshort *);
static inline void VertexStream1svATI(GLenum stream1,const GLshort * coords1)
{
	static PFNGLVERTEXSTREAM1SVATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM1SVATIPROC_HPP>(_impl::_get_proc_address("glVertexStream1svATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLVERTEXSTREAM2DATIPROC_HPP)(GLenum,GLdouble,GLdouble);
static inline void VertexStream2dATI(GLenum stream1,GLdouble x1,GLdouble y1)
{
	static PFNGLVERTEXSTREAM2DATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM2DATIPROC_HPP>(_impl::_get_proc_address("glVertexStream2dATI","GL_ATI_vertex_streams"));
	 fn(stream1,x1,y1);
}
typedef void (*PFNGLVERTEXSTREAM2DVATIPROC_HPP)(GLenum,const GLdouble *);
static inline void VertexStream2dvATI(GLenum stream1,const GLdouble * coords1)
{
	static PFNGLVERTEXSTREAM2DVATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM2DVATIPROC_HPP>(_impl::_get_proc_address("glVertexStream2dvATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLVERTEXSTREAM2FATIPROC_HPP)(GLenum,GLfloat,GLfloat);
static inline void VertexStream2fATI(GLenum stream1,GLfloat x1,GLfloat y1)
{
	static PFNGLVERTEXSTREAM2FATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM2FATIPROC_HPP>(_impl::_get_proc_address("glVertexStream2fATI","GL_ATI_vertex_streams"));
	 fn(stream1,x1,y1);
}
typedef void (*PFNGLVERTEXSTREAM2FVATIPROC_HPP)(GLenum,const GLfloat *);
static inline void VertexStream2fvATI(GLenum stream1,const GLfloat * coords1)
{
	static PFNGLVERTEXSTREAM2FVATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM2FVATIPROC_HPP>(_impl::_get_proc_address("glVertexStream2fvATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLVERTEXSTREAM2IATIPROC_HPP)(GLenum,GLint,GLint);
static inline void VertexStream2iATI(GLenum stream1,GLint x1,GLint y1)
{
	static PFNGLVERTEXSTREAM2IATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM2IATIPROC_HPP>(_impl::_get_proc_address("glVertexStream2iATI","GL_ATI_vertex_streams"));
	 fn(stream1,x1,y1);
}
typedef void (*PFNGLVERTEXSTREAM2IVATIPROC_HPP)(GLenum,const GLint *);
static inline void VertexStream2ivATI(GLenum stream1,const GLint * coords1)
{
	static PFNGLVERTEXSTREAM2IVATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM2IVATIPROC_HPP>(_impl::_get_proc_address("glVertexStream2ivATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLVERTEXSTREAM2SATIPROC_HPP)(GLenum,GLshort,GLshort);
static inline void VertexStream2sATI(GLenum stream1,GLshort x1,GLshort y1)
{
	static PFNGLVERTEXSTREAM2SATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM2SATIPROC_HPP>(_impl::_get_proc_address("glVertexStream2sATI","GL_ATI_vertex_streams"));
	 fn(stream1,x1,y1);
}
typedef void (*PFNGLVERTEXSTREAM2SVATIPROC_HPP)(GLenum,const GLshort *);
static inline void VertexStream2svATI(GLenum stream1,const GLshort * coords1)
{
	static PFNGLVERTEXSTREAM2SVATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM2SVATIPROC_HPP>(_impl::_get_proc_address("glVertexStream2svATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLVERTEXSTREAM3DATIPROC_HPP)(GLenum,GLdouble,GLdouble,GLdouble);
static inline void VertexStream3dATI(GLenum stream1,GLdouble x1,GLdouble y1,GLdouble z1)
{
	static PFNGLVERTEXSTREAM3DATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM3DATIPROC_HPP>(_impl::_get_proc_address("glVertexStream3dATI","GL_ATI_vertex_streams"));
	 fn(stream1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXSTREAM3DVATIPROC_HPP)(GLenum,const GLdouble *);
static inline void VertexStream3dvATI(GLenum stream1,const GLdouble * coords1)
{
	static PFNGLVERTEXSTREAM3DVATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM3DVATIPROC_HPP>(_impl::_get_proc_address("glVertexStream3dvATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLVERTEXSTREAM3FATIPROC_HPP)(GLenum,GLfloat,GLfloat,GLfloat);
static inline void VertexStream3fATI(GLenum stream1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLVERTEXSTREAM3FATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM3FATIPROC_HPP>(_impl::_get_proc_address("glVertexStream3fATI","GL_ATI_vertex_streams"));
	 fn(stream1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXSTREAM3FVATIPROC_HPP)(GLenum,const GLfloat *);
static inline void VertexStream3fvATI(GLenum stream1,const GLfloat * coords1)
{
	static PFNGLVERTEXSTREAM3FVATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM3FVATIPROC_HPP>(_impl::_get_proc_address("glVertexStream3fvATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLVERTEXSTREAM3IATIPROC_HPP)(GLenum,GLint,GLint,GLint);
static inline void VertexStream3iATI(GLenum stream1,GLint x1,GLint y1,GLint z1)
{
	static PFNGLVERTEXSTREAM3IATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM3IATIPROC_HPP>(_impl::_get_proc_address("glVertexStream3iATI","GL_ATI_vertex_streams"));
	 fn(stream1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXSTREAM3IVATIPROC_HPP)(GLenum,const GLint *);
static inline void VertexStream3ivATI(GLenum stream1,const GLint * coords1)
{
	static PFNGLVERTEXSTREAM3IVATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM3IVATIPROC_HPP>(_impl::_get_proc_address("glVertexStream3ivATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLVERTEXSTREAM3SATIPROC_HPP)(GLenum,GLshort,GLshort,GLshort);
static inline void VertexStream3sATI(GLenum stream1,GLshort x1,GLshort y1,GLshort z1)
{
	static PFNGLVERTEXSTREAM3SATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM3SATIPROC_HPP>(_impl::_get_proc_address("glVertexStream3sATI","GL_ATI_vertex_streams"));
	 fn(stream1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXSTREAM3SVATIPROC_HPP)(GLenum,const GLshort *);
static inline void VertexStream3svATI(GLenum stream1,const GLshort * coords1)
{
	static PFNGLVERTEXSTREAM3SVATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM3SVATIPROC_HPP>(_impl::_get_proc_address("glVertexStream3svATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLVERTEXSTREAM4DATIPROC_HPP)(GLenum,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void VertexStream4dATI(GLenum stream1,GLdouble x1,GLdouble y1,GLdouble z1,GLdouble w1)
{
	static PFNGLVERTEXSTREAM4DATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM4DATIPROC_HPP>(_impl::_get_proc_address("glVertexStream4dATI","GL_ATI_vertex_streams"));
	 fn(stream1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXSTREAM4DVATIPROC_HPP)(GLenum,const GLdouble *);
static inline void VertexStream4dvATI(GLenum stream1,const GLdouble * coords1)
{
	static PFNGLVERTEXSTREAM4DVATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM4DVATIPROC_HPP>(_impl::_get_proc_address("glVertexStream4dvATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLVERTEXSTREAM4FATIPROC_HPP)(GLenum,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void VertexStream4fATI(GLenum stream1,GLfloat x1,GLfloat y1,GLfloat z1,GLfloat w1)
{
	static PFNGLVERTEXSTREAM4FATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM4FATIPROC_HPP>(_impl::_get_proc_address("glVertexStream4fATI","GL_ATI_vertex_streams"));
	 fn(stream1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXSTREAM4FVATIPROC_HPP)(GLenum,const GLfloat *);
static inline void VertexStream4fvATI(GLenum stream1,const GLfloat * coords1)
{
	static PFNGLVERTEXSTREAM4FVATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM4FVATIPROC_HPP>(_impl::_get_proc_address("glVertexStream4fvATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLVERTEXSTREAM4IATIPROC_HPP)(GLenum,GLint,GLint,GLint,GLint);
static inline void VertexStream4iATI(GLenum stream1,GLint x1,GLint y1,GLint z1,GLint w1)
{
	static PFNGLVERTEXSTREAM4IATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM4IATIPROC_HPP>(_impl::_get_proc_address("glVertexStream4iATI","GL_ATI_vertex_streams"));
	 fn(stream1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXSTREAM4IVATIPROC_HPP)(GLenum,const GLint *);
static inline void VertexStream4ivATI(GLenum stream1,const GLint * coords1)
{
	static PFNGLVERTEXSTREAM4IVATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM4IVATIPROC_HPP>(_impl::_get_proc_address("glVertexStream4ivATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}
typedef void (*PFNGLVERTEXSTREAM4SATIPROC_HPP)(GLenum,GLshort,GLshort,GLshort,GLshort);
static inline void VertexStream4sATI(GLenum stream1,GLshort x1,GLshort y1,GLshort z1,GLshort w1)
{
	static PFNGLVERTEXSTREAM4SATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM4SATIPROC_HPP>(_impl::_get_proc_address("glVertexStream4sATI","GL_ATI_vertex_streams"));
	 fn(stream1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXSTREAM4SVATIPROC_HPP)(GLenum,const GLshort *);
static inline void VertexStream4svATI(GLenum stream1,const GLshort * coords1)
{
	static PFNGLVERTEXSTREAM4SVATIPROC_HPP fn=reinterpret_cast<PFNGLVERTEXSTREAM4SVATIPROC_HPP>(_impl::_get_proc_address("glVertexStream4svATI","GL_ATI_vertex_streams"));
	 fn(stream1,coords1);
}}
#endif

#ifndef GL_EXT_422_pixels
#define GL_EXT_422_pixels
#ifndef GL_422_EXT
#define GL_422_EXT 0x80CC
#endif //GL_422_EXT
#ifndef GL_422_REV_EXT
#define GL_422_REV_EXT 0x80CD
#endif //GL_422_REV_EXT
#ifndef GL_422_AVERAGE_EXT
#define GL_422_AVERAGE_EXT 0x80CE
#endif //GL_422_AVERAGE_EXT
#ifndef GL_422_REV_AVERAGE_EXT
#define GL_422_REV_AVERAGE_EXT 0x80CF
#endif //GL_422_REV_AVERAGE_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_abgr
#define GL_EXT_abgr
#ifndef GL_ABGR_EXT
#define GL_ABGR_EXT 0x8000
#endif //GL_ABGR_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_bgra
#define GL_EXT_bgra
#ifndef GL_BGR_EXT
#define GL_BGR_EXT 0x80E0
#endif //GL_BGR_EXT
#ifndef GL_BGRA_EXT
#define GL_BGRA_EXT 0x80E1
#endif //GL_BGRA_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_bindable_uniform
#define GL_EXT_bindable_uniform
#ifndef GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT
#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2
#endif //GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT
#ifndef GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT
#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3
#endif //GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT
#ifndef GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT
#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4
#endif //GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT
#ifndef GL_MAX_BINDABLE_UNIFORM_SIZE_EXT
#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED
#endif //GL_MAX_BINDABLE_UNIFORM_SIZE_EXT
#ifndef GL_UNIFORM_BUFFER_EXT
#define GL_UNIFORM_BUFFER_EXT 0x8DEE
#endif //GL_UNIFORM_BUFFER_EXT
#ifndef GL_UNIFORM_BUFFER_BINDING_EXT
#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF
#endif //GL_UNIFORM_BUFFER_BINDING_EXT
extern "C" {
}
namespace gl{

typedef GLint (*PFNGLGETUNIFORMBUFFERSIZEEXTPROC_HPP)(GLuint,GLint);
static inline GLint GetUniformBufferSizeEXT(GLuint program1,GLint location1)
{
	static PFNGLGETUNIFORMBUFFERSIZEEXTPROC_HPP fn=reinterpret_cast<PFNGLGETUNIFORMBUFFERSIZEEXTPROC_HPP>(_impl::_get_proc_address("glGetUniformBufferSizeEXT","GL_EXT_bindable_uniform"));
	return fn(program1,location1);
}
typedef GLintptr (*PFNGLGETUNIFORMOFFSETEXTPROC_HPP)(GLuint,GLint);
static inline GLintptr GetUniformOffsetEXT(GLuint program1,GLint location1)
{
	static PFNGLGETUNIFORMOFFSETEXTPROC_HPP fn=reinterpret_cast<PFNGLGETUNIFORMOFFSETEXTPROC_HPP>(_impl::_get_proc_address("glGetUniformOffsetEXT","GL_EXT_bindable_uniform"));
	return fn(program1,location1);
}
typedef void (*PFNGLUNIFORMBUFFEREXTPROC_HPP)(GLuint,GLint,GLuint);
static inline void UniformBufferEXT(GLuint program1,GLint location1,GLuint buffer1)
{
	static PFNGLUNIFORMBUFFEREXTPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMBUFFEREXTPROC_HPP>(_impl::_get_proc_address("glUniformBufferEXT","GL_EXT_bindable_uniform"));
	 fn(program1,location1,buffer1);
}}
#endif

#ifndef GL_EXT_blend_color
#define GL_EXT_blend_color
#ifndef GL_CONSTANT_COLOR_EXT
#define GL_CONSTANT_COLOR_EXT 0x8001
#endif //GL_CONSTANT_COLOR_EXT
#ifndef GL_ONE_MINUS_CONSTANT_COLOR_EXT
#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002
#endif //GL_ONE_MINUS_CONSTANT_COLOR_EXT
#ifndef GL_CONSTANT_ALPHA_EXT
#define GL_CONSTANT_ALPHA_EXT 0x8003
#endif //GL_CONSTANT_ALPHA_EXT
#ifndef GL_ONE_MINUS_CONSTANT_ALPHA_EXT
#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004
#endif //GL_ONE_MINUS_CONSTANT_ALPHA_EXT
#ifndef GL_BLEND_COLOR_EXT
#define GL_BLEND_COLOR_EXT 0x8005
#endif //GL_BLEND_COLOR_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLBLENDCOLOREXTPROC_HPP)(GLfloat,GLfloat,GLfloat,GLfloat);
static inline void BlendColorEXT(GLfloat red1,GLfloat green1,GLfloat blue1,GLfloat alpha1)
{
	static PFNGLBLENDCOLOREXTPROC_HPP fn=reinterpret_cast<PFNGLBLENDCOLOREXTPROC_HPP>(_impl::_get_proc_address("glBlendColorEXT","GL_EXT_blend_color"));
	 fn(red1,green1,blue1,alpha1);
}}
#endif

#ifndef GL_EXT_blend_equation_separate
#define GL_EXT_blend_equation_separate
#ifndef GL_BLEND_EQUATION_RGB_EXT
#define GL_BLEND_EQUATION_RGB_EXT 0x8009
#endif //GL_BLEND_EQUATION_RGB_EXT
#ifndef GL_BLEND_EQUATION_ALPHA_EXT
#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D
#endif //GL_BLEND_EQUATION_ALPHA_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLBLENDEQUATIONSEPARATEEXTPROC_HPP)(GLenum,GLenum);
static inline void BlendEquationSeparateEXT(GLenum modeRGB1,GLenum modeAlpha1)
{
	static PFNGLBLENDEQUATIONSEPARATEEXTPROC_HPP fn=reinterpret_cast<PFNGLBLENDEQUATIONSEPARATEEXTPROC_HPP>(_impl::_get_proc_address("glBlendEquationSeparateEXT","GL_EXT_blend_equation_separate"));
	 fn(modeRGB1,modeAlpha1);
}}
#endif

#ifndef GL_EXT_blend_func_separate
#define GL_EXT_blend_func_separate
#ifndef GL_BLEND_DST_RGB_EXT
#define GL_BLEND_DST_RGB_EXT 0x80C8
#endif //GL_BLEND_DST_RGB_EXT
#ifndef GL_BLEND_SRC_RGB_EXT
#define GL_BLEND_SRC_RGB_EXT 0x80C9
#endif //GL_BLEND_SRC_RGB_EXT
#ifndef GL_BLEND_DST_ALPHA_EXT
#define GL_BLEND_DST_ALPHA_EXT 0x80CA
#endif //GL_BLEND_DST_ALPHA_EXT
#ifndef GL_BLEND_SRC_ALPHA_EXT
#define GL_BLEND_SRC_ALPHA_EXT 0x80CB
#endif //GL_BLEND_SRC_ALPHA_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLBLENDFUNCSEPARATEEXTPROC_HPP)(GLenum,GLenum,GLenum,GLenum);
static inline void BlendFuncSeparateEXT(GLenum sfactorRGB1,GLenum dfactorRGB1,GLenum sfactorAlpha1,GLenum dfactorAlpha1)
{
	static PFNGLBLENDFUNCSEPARATEEXTPROC_HPP fn=reinterpret_cast<PFNGLBLENDFUNCSEPARATEEXTPROC_HPP>(_impl::_get_proc_address("glBlendFuncSeparateEXT","GL_EXT_blend_func_separate"));
	 fn(sfactorRGB1,dfactorRGB1,sfactorAlpha1,dfactorAlpha1);
}}
#endif

#ifndef GL_EXT_blend_logic_op
#define GL_EXT_blend_logic_op
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_blend_minmax
#define GL_EXT_blend_minmax
#ifndef GL_FUNC_ADD_EXT
#define GL_FUNC_ADD_EXT 0x8006
#endif //GL_FUNC_ADD_EXT
#ifndef GL_MIN_EXT
#define GL_MIN_EXT 0x8007
#endif //GL_MIN_EXT
#ifndef GL_MAX_EXT
#define GL_MAX_EXT 0x8008
#endif //GL_MAX_EXT
#ifndef GL_BLEND_EQUATION_EXT
#define GL_BLEND_EQUATION_EXT 0x8009
#endif //GL_BLEND_EQUATION_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLBLENDEQUATIONEXTPROC_HPP)(GLenum);
static inline void BlendEquationEXT(GLenum mode1)
{
	static PFNGLBLENDEQUATIONEXTPROC_HPP fn=reinterpret_cast<PFNGLBLENDEQUATIONEXTPROC_HPP>(_impl::_get_proc_address("glBlendEquationEXT","GL_EXT_blend_minmax"));
	 fn(mode1);
}}
#endif

#ifndef GL_EXT_blend_subtract
#define GL_EXT_blend_subtract
#ifndef GL_FUNC_SUBTRACT_EXT
#define GL_FUNC_SUBTRACT_EXT 0x800A
#endif //GL_FUNC_SUBTRACT_EXT
#ifndef GL_FUNC_REVERSE_SUBTRACT_EXT
#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B
#endif //GL_FUNC_REVERSE_SUBTRACT_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_clip_volume_hint
#define GL_EXT_clip_volume_hint
#ifndef GL_CLIP_VOLUME_CLIPPING_HINT_EXT
#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0
#endif //GL_CLIP_VOLUME_CLIPPING_HINT_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_cmyka
#define GL_EXT_cmyka
#ifndef GL_CMYK_EXT
#define GL_CMYK_EXT 0x800C
#endif //GL_CMYK_EXT
#ifndef GL_CMYKA_EXT
#define GL_CMYKA_EXT 0x800D
#endif //GL_CMYKA_EXT
#ifndef GL_PACK_CMYK_HINT_EXT
#define GL_PACK_CMYK_HINT_EXT 0x800E
#endif //GL_PACK_CMYK_HINT_EXT
#ifndef GL_UNPACK_CMYK_HINT_EXT
#define GL_UNPACK_CMYK_HINT_EXT 0x800F
#endif //GL_UNPACK_CMYK_HINT_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_color_subtable
#define GL_EXT_color_subtable
extern "C" {
}
namespace gl{

typedef void (*PFNGLCOLORSUBTABLEEXTPROC_HPP)(GLenum,GLsizei,GLsizei,GLenum,GLenum,const void *);
static inline void ColorSubTableEXT(GLenum target1,GLsizei start1,GLsizei count1,GLenum format1,GLenum type1,const void * data1)
{
	static PFNGLCOLORSUBTABLEEXTPROC_HPP fn=reinterpret_cast<PFNGLCOLORSUBTABLEEXTPROC_HPP>(_impl::_get_proc_address("glColorSubTableEXT","GL_EXT_color_subtable"));
	 fn(target1,start1,count1,format1,type1,data1);
}
typedef void (*PFNGLCOPYCOLORSUBTABLEEXTPROC_HPP)(GLenum,GLsizei,GLint,GLint,GLsizei);
static inline void CopyColorSubTableEXT(GLenum target1,GLsizei start1,GLint x1,GLint y1,GLsizei width1)
{
	static PFNGLCOPYCOLORSUBTABLEEXTPROC_HPP fn=reinterpret_cast<PFNGLCOPYCOLORSUBTABLEEXTPROC_HPP>(_impl::_get_proc_address("glCopyColorSubTableEXT","GL_EXT_color_subtable"));
	 fn(target1,start1,x1,y1,width1);
}}
#endif

#ifndef GL_EXT_compiled_vertex_array
#define GL_EXT_compiled_vertex_array
#ifndef GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8
#endif //GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
#ifndef GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9
#endif //GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLLOCKARRAYSEXTPROC_HPP)(GLint,GLsizei);
static inline void LockArraysEXT(GLint first1,GLsizei count1)
{
	static PFNGLLOCKARRAYSEXTPROC_HPP fn=reinterpret_cast<PFNGLLOCKARRAYSEXTPROC_HPP>(_impl::_get_proc_address("glLockArraysEXT","GL_EXT_compiled_vertex_array"));
	 fn(first1,count1);
}
typedef void (*PFNGLUNLOCKARRAYSEXTPROC_HPP)();
static inline void UnlockArraysEXT()
{
	static PFNGLUNLOCKARRAYSEXTPROC_HPP fn=reinterpret_cast<PFNGLUNLOCKARRAYSEXTPROC_HPP>(_impl::_get_proc_address("glUnlockArraysEXT","GL_EXT_compiled_vertex_array"));
	 fn();
}}
#endif

#ifndef GL_EXT_convolution
#define GL_EXT_convolution
#ifndef GL_CONVOLUTION_1D_EXT
#define GL_CONVOLUTION_1D_EXT 0x8010
#endif //GL_CONVOLUTION_1D_EXT
#ifndef GL_CONVOLUTION_2D_EXT
#define GL_CONVOLUTION_2D_EXT 0x8011
#endif //GL_CONVOLUTION_2D_EXT
#ifndef GL_SEPARABLE_2D_EXT
#define GL_SEPARABLE_2D_EXT 0x8012
#endif //GL_SEPARABLE_2D_EXT
#ifndef GL_CONVOLUTION_BORDER_MODE_EXT
#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013
#endif //GL_CONVOLUTION_BORDER_MODE_EXT
#ifndef GL_CONVOLUTION_FILTER_SCALE_EXT
#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014
#endif //GL_CONVOLUTION_FILTER_SCALE_EXT
#ifndef GL_CONVOLUTION_FILTER_BIAS_EXT
#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015
#endif //GL_CONVOLUTION_FILTER_BIAS_EXT
#ifndef GL_REDUCE_EXT
#define GL_REDUCE_EXT 0x8016
#endif //GL_REDUCE_EXT
#ifndef GL_CONVOLUTION_FORMAT_EXT
#define GL_CONVOLUTION_FORMAT_EXT 0x8017
#endif //GL_CONVOLUTION_FORMAT_EXT
#ifndef GL_CONVOLUTION_WIDTH_EXT
#define GL_CONVOLUTION_WIDTH_EXT 0x8018
#endif //GL_CONVOLUTION_WIDTH_EXT
#ifndef GL_CONVOLUTION_HEIGHT_EXT
#define GL_CONVOLUTION_HEIGHT_EXT 0x8019
#endif //GL_CONVOLUTION_HEIGHT_EXT
#ifndef GL_MAX_CONVOLUTION_WIDTH_EXT
#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A
#endif //GL_MAX_CONVOLUTION_WIDTH_EXT
#ifndef GL_MAX_CONVOLUTION_HEIGHT_EXT
#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B
#endif //GL_MAX_CONVOLUTION_HEIGHT_EXT
#ifndef GL_POST_CONVOLUTION_RED_SCALE_EXT
#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C
#endif //GL_POST_CONVOLUTION_RED_SCALE_EXT
#ifndef GL_POST_CONVOLUTION_GREEN_SCALE_EXT
#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D
#endif //GL_POST_CONVOLUTION_GREEN_SCALE_EXT
#ifndef GL_POST_CONVOLUTION_BLUE_SCALE_EXT
#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E
#endif //GL_POST_CONVOLUTION_BLUE_SCALE_EXT
#ifndef GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F
#endif //GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
#ifndef GL_POST_CONVOLUTION_RED_BIAS_EXT
#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020
#endif //GL_POST_CONVOLUTION_RED_BIAS_EXT
#ifndef GL_POST_CONVOLUTION_GREEN_BIAS_EXT
#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021
#endif //GL_POST_CONVOLUTION_GREEN_BIAS_EXT
#ifndef GL_POST_CONVOLUTION_BLUE_BIAS_EXT
#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022
#endif //GL_POST_CONVOLUTION_BLUE_BIAS_EXT
#ifndef GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023
#endif //GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLCONVOLUTIONFILTER1DEXTPROC_HPP)(GLenum,GLenum,GLsizei,GLenum,GLenum,const void *);
static inline void ConvolutionFilter1DEXT(GLenum target1,GLenum internalformat1,GLsizei width1,GLenum format1,GLenum type1,const void * image1)
{
	static PFNGLCONVOLUTIONFILTER1DEXTPROC_HPP fn=reinterpret_cast<PFNGLCONVOLUTIONFILTER1DEXTPROC_HPP>(_impl::_get_proc_address("glConvolutionFilter1DEXT","GL_EXT_convolution"));
	 fn(target1,internalformat1,width1,format1,type1,image1);
}
typedef void (*PFNGLCONVOLUTIONFILTER2DEXTPROC_HPP)(GLenum,GLenum,GLsizei,GLsizei,GLenum,GLenum,const void *);
static inline void ConvolutionFilter2DEXT(GLenum target1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLenum format1,GLenum type1,const void * image1)
{
	static PFNGLCONVOLUTIONFILTER2DEXTPROC_HPP fn=reinterpret_cast<PFNGLCONVOLUTIONFILTER2DEXTPROC_HPP>(_impl::_get_proc_address("glConvolutionFilter2DEXT","GL_EXT_convolution"));
	 fn(target1,internalformat1,width1,height1,format1,type1,image1);
}
typedef void (*PFNGLCONVOLUTIONPARAMETERFEXTPROC_HPP)(GLenum,GLenum,GLfloat);
static inline void ConvolutionParameterfEXT(GLenum target1,GLenum pname1,GLfloat params1)
{
	static PFNGLCONVOLUTIONPARAMETERFEXTPROC_HPP fn=reinterpret_cast<PFNGLCONVOLUTIONPARAMETERFEXTPROC_HPP>(_impl::_get_proc_address("glConvolutionParameterfEXT","GL_EXT_convolution"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLCONVOLUTIONPARAMETERFVEXTPROC_HPP)(GLenum,GLenum,const GLfloat *);
static inline void ConvolutionParameterfvEXT(GLenum target1,GLenum pname1,const GLfloat * params1)
{
	static PFNGLCONVOLUTIONPARAMETERFVEXTPROC_HPP fn=reinterpret_cast<PFNGLCONVOLUTIONPARAMETERFVEXTPROC_HPP>(_impl::_get_proc_address("glConvolutionParameterfvEXT","GL_EXT_convolution"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLCONVOLUTIONPARAMETERIEXTPROC_HPP)(GLenum,GLenum,GLint);
static inline void ConvolutionParameteriEXT(GLenum target1,GLenum pname1,GLint params1)
{
	static PFNGLCONVOLUTIONPARAMETERIEXTPROC_HPP fn=reinterpret_cast<PFNGLCONVOLUTIONPARAMETERIEXTPROC_HPP>(_impl::_get_proc_address("glConvolutionParameteriEXT","GL_EXT_convolution"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLCONVOLUTIONPARAMETERIVEXTPROC_HPP)(GLenum,GLenum,const GLint *);
static inline void ConvolutionParameterivEXT(GLenum target1,GLenum pname1,const GLint * params1)
{
	static PFNGLCONVOLUTIONPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLCONVOLUTIONPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glConvolutionParameterivEXT","GL_EXT_convolution"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC_HPP)(GLenum,GLenum,GLint,GLint,GLsizei);
static inline void CopyConvolutionFilter1DEXT(GLenum target1,GLenum internalformat1,GLint x1,GLint y1,GLsizei width1)
{
	static PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC_HPP>(_impl::_get_proc_address("glCopyConvolutionFilter1DEXT","GL_EXT_convolution"));
	 fn(target1,internalformat1,x1,y1,width1);
}
typedef void (*PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC_HPP)(GLenum,GLenum,GLint,GLint,GLsizei,GLsizei);
static inline void CopyConvolutionFilter2DEXT(GLenum target1,GLenum internalformat1,GLint x1,GLint y1,GLsizei width1,GLsizei height1)
{
	static PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC_HPP>(_impl::_get_proc_address("glCopyConvolutionFilter2DEXT","GL_EXT_convolution"));
	 fn(target1,internalformat1,x1,y1,width1,height1);
}
typedef void (*PFNGLGETCONVOLUTIONFILTEREXTPROC_HPP)(GLenum,GLenum,GLenum,void *);
static inline void GetConvolutionFilterEXT(GLenum target1,GLenum format1,GLenum type1,void * image1)
{
	static PFNGLGETCONVOLUTIONFILTEREXTPROC_HPP fn=reinterpret_cast<PFNGLGETCONVOLUTIONFILTEREXTPROC_HPP>(_impl::_get_proc_address("glGetConvolutionFilterEXT","GL_EXT_convolution"));
	 fn(target1,format1,type1,image1);
}
typedef void (*PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC_HPP)(GLenum,GLenum,GLfloat *);
static inline void GetConvolutionParameterfvEXT(GLenum target1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC_HPP>(_impl::_get_proc_address("glGetConvolutionParameterfvEXT","GL_EXT_convolution"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetConvolutionParameterivEXT(GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glGetConvolutionParameterivEXT","GL_EXT_convolution"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETSEPARABLEFILTEREXTPROC_HPP)(GLenum,GLenum,GLenum,void *,void *,void *);
static inline void GetSeparableFilterEXT(GLenum target1,GLenum format1,GLenum type1,void * row1,void * column1,void * span1)
{
	static PFNGLGETSEPARABLEFILTEREXTPROC_HPP fn=reinterpret_cast<PFNGLGETSEPARABLEFILTEREXTPROC_HPP>(_impl::_get_proc_address("glGetSeparableFilterEXT","GL_EXT_convolution"));
	 fn(target1,format1,type1,row1,column1,span1);
}
typedef void (*PFNGLSEPARABLEFILTER2DEXTPROC_HPP)(GLenum,GLenum,GLsizei,GLsizei,GLenum,GLenum,const void *,const void *);
static inline void SeparableFilter2DEXT(GLenum target1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLenum format1,GLenum type1,const void * row1,const void * column1)
{
	static PFNGLSEPARABLEFILTER2DEXTPROC_HPP fn=reinterpret_cast<PFNGLSEPARABLEFILTER2DEXTPROC_HPP>(_impl::_get_proc_address("glSeparableFilter2DEXT","GL_EXT_convolution"));
	 fn(target1,internalformat1,width1,height1,format1,type1,row1,column1);
}}
#endif

#ifndef GL_EXT_coordinate_frame
#define GL_EXT_coordinate_frame
#ifndef GL_TANGENT_ARRAY_EXT
#define GL_TANGENT_ARRAY_EXT 0x8439
#endif //GL_TANGENT_ARRAY_EXT
#ifndef GL_BINORMAL_ARRAY_EXT
#define GL_BINORMAL_ARRAY_EXT 0x843A
#endif //GL_BINORMAL_ARRAY_EXT
#ifndef GL_CURRENT_TANGENT_EXT
#define GL_CURRENT_TANGENT_EXT 0x843B
#endif //GL_CURRENT_TANGENT_EXT
#ifndef GL_CURRENT_BINORMAL_EXT
#define GL_CURRENT_BINORMAL_EXT 0x843C
#endif //GL_CURRENT_BINORMAL_EXT
#ifndef GL_TANGENT_ARRAY_TYPE_EXT
#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E
#endif //GL_TANGENT_ARRAY_TYPE_EXT
#ifndef GL_TANGENT_ARRAY_STRIDE_EXT
#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F
#endif //GL_TANGENT_ARRAY_STRIDE_EXT
#ifndef GL_BINORMAL_ARRAY_TYPE_EXT
#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440
#endif //GL_BINORMAL_ARRAY_TYPE_EXT
#ifndef GL_BINORMAL_ARRAY_STRIDE_EXT
#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441
#endif //GL_BINORMAL_ARRAY_STRIDE_EXT
#ifndef GL_TANGENT_ARRAY_POINTER_EXT
#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442
#endif //GL_TANGENT_ARRAY_POINTER_EXT
#ifndef GL_BINORMAL_ARRAY_POINTER_EXT
#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443
#endif //GL_BINORMAL_ARRAY_POINTER_EXT
#ifndef GL_MAP1_TANGENT_EXT
#define GL_MAP1_TANGENT_EXT 0x8444
#endif //GL_MAP1_TANGENT_EXT
#ifndef GL_MAP2_TANGENT_EXT
#define GL_MAP2_TANGENT_EXT 0x8445
#endif //GL_MAP2_TANGENT_EXT
#ifndef GL_MAP1_BINORMAL_EXT
#define GL_MAP1_BINORMAL_EXT 0x8446
#endif //GL_MAP1_BINORMAL_EXT
#ifndef GL_MAP2_BINORMAL_EXT
#define GL_MAP2_BINORMAL_EXT 0x8447
#endif //GL_MAP2_BINORMAL_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINORMAL3BEXTPROC_HPP)(GLbyte,GLbyte,GLbyte);
static inline void Binormal3bEXT(GLbyte bx1,GLbyte by1,GLbyte bz1)
{
	static PFNGLBINORMAL3BEXTPROC_HPP fn=reinterpret_cast<PFNGLBINORMAL3BEXTPROC_HPP>(_impl::_get_proc_address("glBinormal3bEXT","GL_EXT_coordinate_frame"));
	 fn(bx1,by1,bz1);
}
typedef void (*PFNGLBINORMAL3BVEXTPROC_HPP)(const GLbyte *);
static inline void Binormal3bvEXT(const GLbyte * v1)
{
	static PFNGLBINORMAL3BVEXTPROC_HPP fn=reinterpret_cast<PFNGLBINORMAL3BVEXTPROC_HPP>(_impl::_get_proc_address("glBinormal3bvEXT","GL_EXT_coordinate_frame"));
	 fn(v1);
}
typedef void (*PFNGLBINORMAL3DEXTPROC_HPP)(GLdouble,GLdouble,GLdouble);
static inline void Binormal3dEXT(GLdouble bx1,GLdouble by1,GLdouble bz1)
{
	static PFNGLBINORMAL3DEXTPROC_HPP fn=reinterpret_cast<PFNGLBINORMAL3DEXTPROC_HPP>(_impl::_get_proc_address("glBinormal3dEXT","GL_EXT_coordinate_frame"));
	 fn(bx1,by1,bz1);
}
typedef void (*PFNGLBINORMAL3DVEXTPROC_HPP)(const GLdouble *);
static inline void Binormal3dvEXT(const GLdouble * v1)
{
	static PFNGLBINORMAL3DVEXTPROC_HPP fn=reinterpret_cast<PFNGLBINORMAL3DVEXTPROC_HPP>(_impl::_get_proc_address("glBinormal3dvEXT","GL_EXT_coordinate_frame"));
	 fn(v1);
}
typedef void (*PFNGLBINORMAL3FEXTPROC_HPP)(GLfloat,GLfloat,GLfloat);
static inline void Binormal3fEXT(GLfloat bx1,GLfloat by1,GLfloat bz1)
{
	static PFNGLBINORMAL3FEXTPROC_HPP fn=reinterpret_cast<PFNGLBINORMAL3FEXTPROC_HPP>(_impl::_get_proc_address("glBinormal3fEXT","GL_EXT_coordinate_frame"));
	 fn(bx1,by1,bz1);
}
typedef void (*PFNGLBINORMAL3FVEXTPROC_HPP)(const GLfloat *);
static inline void Binormal3fvEXT(const GLfloat * v1)
{
	static PFNGLBINORMAL3FVEXTPROC_HPP fn=reinterpret_cast<PFNGLBINORMAL3FVEXTPROC_HPP>(_impl::_get_proc_address("glBinormal3fvEXT","GL_EXT_coordinate_frame"));
	 fn(v1);
}
typedef void (*PFNGLBINORMAL3IEXTPROC_HPP)(GLint,GLint,GLint);
static inline void Binormal3iEXT(GLint bx1,GLint by1,GLint bz1)
{
	static PFNGLBINORMAL3IEXTPROC_HPP fn=reinterpret_cast<PFNGLBINORMAL3IEXTPROC_HPP>(_impl::_get_proc_address("glBinormal3iEXT","GL_EXT_coordinate_frame"));
	 fn(bx1,by1,bz1);
}
typedef void (*PFNGLBINORMAL3IVEXTPROC_HPP)(const GLint *);
static inline void Binormal3ivEXT(const GLint * v1)
{
	static PFNGLBINORMAL3IVEXTPROC_HPP fn=reinterpret_cast<PFNGLBINORMAL3IVEXTPROC_HPP>(_impl::_get_proc_address("glBinormal3ivEXT","GL_EXT_coordinate_frame"));
	 fn(v1);
}
typedef void (*PFNGLBINORMAL3SEXTPROC_HPP)(GLshort,GLshort,GLshort);
static inline void Binormal3sEXT(GLshort bx1,GLshort by1,GLshort bz1)
{
	static PFNGLBINORMAL3SEXTPROC_HPP fn=reinterpret_cast<PFNGLBINORMAL3SEXTPROC_HPP>(_impl::_get_proc_address("glBinormal3sEXT","GL_EXT_coordinate_frame"));
	 fn(bx1,by1,bz1);
}
typedef void (*PFNGLBINORMAL3SVEXTPROC_HPP)(const GLshort *);
static inline void Binormal3svEXT(const GLshort * v1)
{
	static PFNGLBINORMAL3SVEXTPROC_HPP fn=reinterpret_cast<PFNGLBINORMAL3SVEXTPROC_HPP>(_impl::_get_proc_address("glBinormal3svEXT","GL_EXT_coordinate_frame"));
	 fn(v1);
}
typedef void (*PFNGLBINORMALPOINTEREXTPROC_HPP)(GLenum,GLsizei,const void *);
static inline void BinormalPointerEXT(GLenum type1,GLsizei stride1,const void * pointer1)
{
	static PFNGLBINORMALPOINTEREXTPROC_HPP fn=reinterpret_cast<PFNGLBINORMALPOINTEREXTPROC_HPP>(_impl::_get_proc_address("glBinormalPointerEXT","GL_EXT_coordinate_frame"));
	 fn(type1,stride1,pointer1);
}
typedef void (*PFNGLTANGENT3BEXTPROC_HPP)(GLbyte,GLbyte,GLbyte);
static inline void Tangent3bEXT(GLbyte tx1,GLbyte ty1,GLbyte tz1)
{
	static PFNGLTANGENT3BEXTPROC_HPP fn=reinterpret_cast<PFNGLTANGENT3BEXTPROC_HPP>(_impl::_get_proc_address("glTangent3bEXT","GL_EXT_coordinate_frame"));
	 fn(tx1,ty1,tz1);
}
typedef void (*PFNGLTANGENT3BVEXTPROC_HPP)(const GLbyte *);
static inline void Tangent3bvEXT(const GLbyte * v1)
{
	static PFNGLTANGENT3BVEXTPROC_HPP fn=reinterpret_cast<PFNGLTANGENT3BVEXTPROC_HPP>(_impl::_get_proc_address("glTangent3bvEXT","GL_EXT_coordinate_frame"));
	 fn(v1);
}
typedef void (*PFNGLTANGENT3DEXTPROC_HPP)(GLdouble,GLdouble,GLdouble);
static inline void Tangent3dEXT(GLdouble tx1,GLdouble ty1,GLdouble tz1)
{
	static PFNGLTANGENT3DEXTPROC_HPP fn=reinterpret_cast<PFNGLTANGENT3DEXTPROC_HPP>(_impl::_get_proc_address("glTangent3dEXT","GL_EXT_coordinate_frame"));
	 fn(tx1,ty1,tz1);
}
typedef void (*PFNGLTANGENT3DVEXTPROC_HPP)(const GLdouble *);
static inline void Tangent3dvEXT(const GLdouble * v1)
{
	static PFNGLTANGENT3DVEXTPROC_HPP fn=reinterpret_cast<PFNGLTANGENT3DVEXTPROC_HPP>(_impl::_get_proc_address("glTangent3dvEXT","GL_EXT_coordinate_frame"));
	 fn(v1);
}
typedef void (*PFNGLTANGENT3FEXTPROC_HPP)(GLfloat,GLfloat,GLfloat);
static inline void Tangent3fEXT(GLfloat tx1,GLfloat ty1,GLfloat tz1)
{
	static PFNGLTANGENT3FEXTPROC_HPP fn=reinterpret_cast<PFNGLTANGENT3FEXTPROC_HPP>(_impl::_get_proc_address("glTangent3fEXT","GL_EXT_coordinate_frame"));
	 fn(tx1,ty1,tz1);
}
typedef void (*PFNGLTANGENT3FVEXTPROC_HPP)(const GLfloat *);
static inline void Tangent3fvEXT(const GLfloat * v1)
{
	static PFNGLTANGENT3FVEXTPROC_HPP fn=reinterpret_cast<PFNGLTANGENT3FVEXTPROC_HPP>(_impl::_get_proc_address("glTangent3fvEXT","GL_EXT_coordinate_frame"));
	 fn(v1);
}
typedef void (*PFNGLTANGENT3IEXTPROC_HPP)(GLint,GLint,GLint);
static inline void Tangent3iEXT(GLint tx1,GLint ty1,GLint tz1)
{
	static PFNGLTANGENT3IEXTPROC_HPP fn=reinterpret_cast<PFNGLTANGENT3IEXTPROC_HPP>(_impl::_get_proc_address("glTangent3iEXT","GL_EXT_coordinate_frame"));
	 fn(tx1,ty1,tz1);
}
typedef void (*PFNGLTANGENT3IVEXTPROC_HPP)(const GLint *);
static inline void Tangent3ivEXT(const GLint * v1)
{
	static PFNGLTANGENT3IVEXTPROC_HPP fn=reinterpret_cast<PFNGLTANGENT3IVEXTPROC_HPP>(_impl::_get_proc_address("glTangent3ivEXT","GL_EXT_coordinate_frame"));
	 fn(v1);
}
typedef void (*PFNGLTANGENT3SEXTPROC_HPP)(GLshort,GLshort,GLshort);
static inline void Tangent3sEXT(GLshort tx1,GLshort ty1,GLshort tz1)
{
	static PFNGLTANGENT3SEXTPROC_HPP fn=reinterpret_cast<PFNGLTANGENT3SEXTPROC_HPP>(_impl::_get_proc_address("glTangent3sEXT","GL_EXT_coordinate_frame"));
	 fn(tx1,ty1,tz1);
}
typedef void (*PFNGLTANGENT3SVEXTPROC_HPP)(const GLshort *);
static inline void Tangent3svEXT(const GLshort * v1)
{
	static PFNGLTANGENT3SVEXTPROC_HPP fn=reinterpret_cast<PFNGLTANGENT3SVEXTPROC_HPP>(_impl::_get_proc_address("glTangent3svEXT","GL_EXT_coordinate_frame"));
	 fn(v1);
}
typedef void (*PFNGLTANGENTPOINTEREXTPROC_HPP)(GLenum,GLsizei,const void *);
static inline void TangentPointerEXT(GLenum type1,GLsizei stride1,const void * pointer1)
{
	static PFNGLTANGENTPOINTEREXTPROC_HPP fn=reinterpret_cast<PFNGLTANGENTPOINTEREXTPROC_HPP>(_impl::_get_proc_address("glTangentPointerEXT","GL_EXT_coordinate_frame"));
	 fn(type1,stride1,pointer1);
}}
#endif

#ifndef GL_EXT_copy_texture
#define GL_EXT_copy_texture
extern "C" {
}
namespace gl{

typedef void (*PFNGLCOPYTEXIMAGE1DEXTPROC_HPP)(GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLint);
static inline void CopyTexImage1DEXT(GLenum target1,GLint level1,GLenum internalformat1,GLint x1,GLint y1,GLsizei width1,GLint border1)
{
	static PFNGLCOPYTEXIMAGE1DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOPYTEXIMAGE1DEXTPROC_HPP>(_impl::_get_proc_address("glCopyTexImage1DEXT","GL_EXT_copy_texture"));
	 fn(target1,level1,internalformat1,x1,y1,width1,border1);
}
typedef void (*PFNGLCOPYTEXIMAGE2DEXTPROC_HPP)(GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLsizei,GLint);
static inline void CopyTexImage2DEXT(GLenum target1,GLint level1,GLenum internalformat1,GLint x1,GLint y1,GLsizei width1,GLsizei height1,GLint border1)
{
	static PFNGLCOPYTEXIMAGE2DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOPYTEXIMAGE2DEXTPROC_HPP>(_impl::_get_proc_address("glCopyTexImage2DEXT","GL_EXT_copy_texture"));
	 fn(target1,level1,internalformat1,x1,y1,width1,height1,border1);
}
typedef void (*PFNGLCOPYTEXSUBIMAGE1DEXTPROC_HPP)(GLenum,GLint,GLint,GLint,GLint,GLsizei);
static inline void CopyTexSubImage1DEXT(GLenum target1,GLint level1,GLint xoffset1,GLint x1,GLint y1,GLsizei width1)
{
	static PFNGLCOPYTEXSUBIMAGE1DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOPYTEXSUBIMAGE1DEXTPROC_HPP>(_impl::_get_proc_address("glCopyTexSubImage1DEXT","GL_EXT_copy_texture"));
	 fn(target1,level1,xoffset1,x1,y1,width1);
}
typedef void (*PFNGLCOPYTEXSUBIMAGE2DEXTPROC_HPP)(GLenum,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
static inline void CopyTexSubImage2DEXT(GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLint x1,GLint y1,GLsizei width1,GLsizei height1)
{
	static PFNGLCOPYTEXSUBIMAGE2DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOPYTEXSUBIMAGE2DEXTPROC_HPP>(_impl::_get_proc_address("glCopyTexSubImage2DEXT","GL_EXT_copy_texture"));
	 fn(target1,level1,xoffset1,yoffset1,x1,y1,width1,height1);
}
typedef void (*PFNGLCOPYTEXSUBIMAGE3DEXTPROC_HPP)(GLenum,GLint,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
static inline void CopyTexSubImage3DEXT(GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLint x1,GLint y1,GLsizei width1,GLsizei height1)
{
	static PFNGLCOPYTEXSUBIMAGE3DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOPYTEXSUBIMAGE3DEXTPROC_HPP>(_impl::_get_proc_address("glCopyTexSubImage3DEXT","GL_EXT_copy_texture"));
	 fn(target1,level1,xoffset1,yoffset1,zoffset1,x1,y1,width1,height1);
}}
#endif

#ifndef GL_EXT_cull_vertex
#define GL_EXT_cull_vertex
#ifndef GL_CULL_VERTEX_EXT
#define GL_CULL_VERTEX_EXT 0x81AA
#endif //GL_CULL_VERTEX_EXT
#ifndef GL_CULL_VERTEX_EYE_POSITION_EXT
#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB
#endif //GL_CULL_VERTEX_EYE_POSITION_EXT
#ifndef GL_CULL_VERTEX_OBJECT_POSITION_EXT
#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC
#endif //GL_CULL_VERTEX_OBJECT_POSITION_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLCULLPARAMETERDVEXTPROC_HPP)(GLenum,GLdouble *);
static inline void CullParameterdvEXT(GLenum pname1,GLdouble * params1)
{
	static PFNGLCULLPARAMETERDVEXTPROC_HPP fn=reinterpret_cast<PFNGLCULLPARAMETERDVEXTPROC_HPP>(_impl::_get_proc_address("glCullParameterdvEXT","GL_EXT_cull_vertex"));
	 fn(pname1,params1);
}
typedef void (*PFNGLCULLPARAMETERFVEXTPROC_HPP)(GLenum,GLfloat *);
static inline void CullParameterfvEXT(GLenum pname1,GLfloat * params1)
{
	static PFNGLCULLPARAMETERFVEXTPROC_HPP fn=reinterpret_cast<PFNGLCULLPARAMETERFVEXTPROC_HPP>(_impl::_get_proc_address("glCullParameterfvEXT","GL_EXT_cull_vertex"));
	 fn(pname1,params1);
}}
#endif

#ifndef GL_EXT_debug_label
#define GL_EXT_debug_label
#ifndef GL_SAMPLER
#define GL_SAMPLER 0x82E6
#endif //GL_SAMPLER
#ifndef GL_PROGRAM_PIPELINE_OBJECT_EXT
#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F
#endif //GL_PROGRAM_PIPELINE_OBJECT_EXT
#ifndef GL_PROGRAM_OBJECT_EXT
#define GL_PROGRAM_OBJECT_EXT 0x8B40
#endif //GL_PROGRAM_OBJECT_EXT
#ifndef GL_SHADER_OBJECT_EXT
#define GL_SHADER_OBJECT_EXT 0x8B48
#endif //GL_SHADER_OBJECT_EXT
#ifndef GL_TRANSFORM_FEEDBACK
#define GL_TRANSFORM_FEEDBACK 0x8E22
#endif //GL_TRANSFORM_FEEDBACK
#ifndef GL_BUFFER_OBJECT_EXT
#define GL_BUFFER_OBJECT_EXT 0x9151
#endif //GL_BUFFER_OBJECT_EXT
#ifndef GL_QUERY_OBJECT_EXT
#define GL_QUERY_OBJECT_EXT 0x9153
#endif //GL_QUERY_OBJECT_EXT
#ifndef GL_VERTEX_ARRAY_OBJECT_EXT
#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154
#endif //GL_VERTEX_ARRAY_OBJECT_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETOBJECTLABELEXTPROC_HPP)(GLenum,GLuint,GLsizei,GLsizei *,GLchar *);
static inline void GetObjectLabelEXT(GLenum type1,GLuint object1,GLsizei bufSize1,GLsizei * length1,GLchar * label1)
{
	static PFNGLGETOBJECTLABELEXTPROC_HPP fn=reinterpret_cast<PFNGLGETOBJECTLABELEXTPROC_HPP>(_impl::_get_proc_address("glGetObjectLabelEXT","GL_EXT_debug_label"));
	 fn(type1,object1,bufSize1,length1,label1);
}
typedef void (*PFNGLLABELOBJECTEXTPROC_HPP)(GLenum,GLuint,GLsizei,const GLchar *);
static inline void LabelObjectEXT(GLenum type1,GLuint object1,GLsizei length1,const GLchar * label1)
{
	static PFNGLLABELOBJECTEXTPROC_HPP fn=reinterpret_cast<PFNGLLABELOBJECTEXTPROC_HPP>(_impl::_get_proc_address("glLabelObjectEXT","GL_EXT_debug_label"));
	 fn(type1,object1,length1,label1);
}}
#endif

#ifndef GL_EXT_debug_marker
#define GL_EXT_debug_marker
extern "C" {
}
namespace gl{

typedef void (*PFNGLINSERTEVENTMARKEREXTPROC_HPP)(GLsizei,const GLchar *);
static inline void InsertEventMarkerEXT(GLsizei length1,const GLchar * marker1)
{
	static PFNGLINSERTEVENTMARKEREXTPROC_HPP fn=reinterpret_cast<PFNGLINSERTEVENTMARKEREXTPROC_HPP>(_impl::_get_proc_address("glInsertEventMarkerEXT","GL_EXT_debug_marker"));
	 fn(length1,marker1);
}
typedef void (*PFNGLPOPGROUPMARKEREXTPROC_HPP)();
static inline void PopGroupMarkerEXT()
{
	static PFNGLPOPGROUPMARKEREXTPROC_HPP fn=reinterpret_cast<PFNGLPOPGROUPMARKEREXTPROC_HPP>(_impl::_get_proc_address("glPopGroupMarkerEXT","GL_EXT_debug_marker"));
	 fn();
}
typedef void (*PFNGLPUSHGROUPMARKEREXTPROC_HPP)(GLsizei,const GLchar *);
static inline void PushGroupMarkerEXT(GLsizei length1,const GLchar * marker1)
{
	static PFNGLPUSHGROUPMARKEREXTPROC_HPP fn=reinterpret_cast<PFNGLPUSHGROUPMARKEREXTPROC_HPP>(_impl::_get_proc_address("glPushGroupMarkerEXT","GL_EXT_debug_marker"));
	 fn(length1,marker1);
}}
#endif

#ifndef GL_EXT_depth_bounds_test
#define GL_EXT_depth_bounds_test
#ifndef GL_DEPTH_BOUNDS_TEST_EXT
#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890
#endif //GL_DEPTH_BOUNDS_TEST_EXT
#ifndef GL_DEPTH_BOUNDS_EXT
#define GL_DEPTH_BOUNDS_EXT 0x8891
#endif //GL_DEPTH_BOUNDS_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLDEPTHBOUNDSEXTPROC_HPP)(GLclampd,GLclampd);
static inline void DepthBoundsEXT(GLclampd zmin1,GLclampd zmax1)
{
	static PFNGLDEPTHBOUNDSEXTPROC_HPP fn=reinterpret_cast<PFNGLDEPTHBOUNDSEXTPROC_HPP>(_impl::_get_proc_address("glDepthBoundsEXT","GL_EXT_depth_bounds_test"));
	 fn(zmin1,zmax1);
}}
#endif

#ifndef GL_EXT_direct_state_access
#define GL_EXT_direct_state_access
#ifndef GL_PROGRAM_MATRIX_EXT
#define GL_PROGRAM_MATRIX_EXT 0x8E2D
#endif //GL_PROGRAM_MATRIX_EXT
#ifndef GL_TRANSPOSE_PROGRAM_MATRIX_EXT
#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E
#endif //GL_TRANSPOSE_PROGRAM_MATRIX_EXT
#ifndef GL_PROGRAM_MATRIX_STACK_DEPTH_EXT
#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F
#endif //GL_PROGRAM_MATRIX_STACK_DEPTH_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDMULTITEXTUREEXTPROC_HPP)(GLenum,GLenum,GLuint);
static inline void BindMultiTextureEXT(GLenum texunit1,GLenum target1,GLuint texture1)
{
	static PFNGLBINDMULTITEXTUREEXTPROC_HPP fn=reinterpret_cast<PFNGLBINDMULTITEXTUREEXTPROC_HPP>(_impl::_get_proc_address("glBindMultiTextureEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,texture1);
}
typedef GLenum (*PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC_HPP)(GLuint,GLenum);
static inline GLenum CheckNamedFramebufferStatusEXT(GLuint framebuffer1,GLenum target1)
{
	static PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC_HPP fn=reinterpret_cast<PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC_HPP>(_impl::_get_proc_address("glCheckNamedFramebufferStatusEXT","GL_EXT_direct_state_access"));
	return fn(framebuffer1,target1);
}
typedef void (*PFNGLCLEARNAMEDBUFFERDATAEXTPROC_HPP)(GLuint,GLenum,GLenum,GLenum,const void *);
static inline void ClearNamedBufferDataEXT(GLuint buffer1,GLenum internalformat1,GLenum format1,GLenum type1,const void * data1)
{
	static PFNGLCLEARNAMEDBUFFERDATAEXTPROC_HPP fn=reinterpret_cast<PFNGLCLEARNAMEDBUFFERDATAEXTPROC_HPP>(_impl::_get_proc_address("glClearNamedBufferDataEXT","GL_EXT_direct_state_access"));
	 fn(buffer1,internalformat1,format1,type1,data1);
}
typedef void (*PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC_HPP)(GLuint,GLenum,GLsizeiptr,GLsizeiptr,GLenum,GLenum,const void *);
static inline void ClearNamedBufferSubDataEXT(GLuint buffer1,GLenum internalformat1,GLsizeiptr offset1,GLsizeiptr size1,GLenum format1,GLenum type1,const void * data1)
{
	static PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC_HPP fn=reinterpret_cast<PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC_HPP>(_impl::_get_proc_address("glClearNamedBufferSubDataEXT","GL_EXT_direct_state_access"));
	 fn(buffer1,internalformat1,offset1,size1,format1,type1,data1);
}
typedef void (*PFNGLCLIENTATTRIBDEFAULTEXTPROC_HPP)(GLbitfield);
static inline void ClientAttribDefaultEXT(GLbitfield mask1)
{
	static PFNGLCLIENTATTRIBDEFAULTEXTPROC_HPP fn=reinterpret_cast<PFNGLCLIENTATTRIBDEFAULTEXTPROC_HPP>(_impl::_get_proc_address("glClientAttribDefaultEXT","GL_EXT_direct_state_access"));
	 fn(mask1);
}
typedef void (*PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC_HPP)(GLenum,GLenum,GLint,GLenum,GLsizei,GLint,GLsizei,const void *);
static inline void CompressedMultiTexImage1DEXT(GLenum texunit1,GLenum target1,GLint level1,GLenum internalformat1,GLsizei width1,GLint border1,GLsizei imageSize1,const void * bits1)
{
	static PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC_HPP>(_impl::_get_proc_address("glCompressedMultiTexImage1DEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,internalformat1,width1,border1,imageSize1,bits1);
}
typedef void (*PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC_HPP)(GLenum,GLenum,GLint,GLenum,GLsizei,GLsizei,GLint,GLsizei,const void *);
static inline void CompressedMultiTexImage2DEXT(GLenum texunit1,GLenum target1,GLint level1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLint border1,GLsizei imageSize1,const void * bits1)
{
	static PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC_HPP>(_impl::_get_proc_address("glCompressedMultiTexImage2DEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,internalformat1,width1,height1,border1,imageSize1,bits1);
}
typedef void (*PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC_HPP)(GLenum,GLenum,GLint,GLenum,GLsizei,GLsizei,GLsizei,GLint,GLsizei,const void *);
static inline void CompressedMultiTexImage3DEXT(GLenum texunit1,GLenum target1,GLint level1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLsizei depth1,GLint border1,GLsizei imageSize1,const void * bits1)
{
	static PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC_HPP>(_impl::_get_proc_address("glCompressedMultiTexImage3DEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,internalformat1,width1,height1,depth1,border1,imageSize1,bits1);
}
typedef void (*PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC_HPP)(GLenum,GLenum,GLint,GLint,GLsizei,GLenum,GLsizei,const void *);
static inline void CompressedMultiTexSubImage1DEXT(GLenum texunit1,GLenum target1,GLint level1,GLint xoffset1,GLsizei width1,GLenum format1,GLsizei imageSize1,const void * bits1)
{
	static PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC_HPP>(_impl::_get_proc_address("glCompressedMultiTexSubImage1DEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,xoffset1,width1,format1,imageSize1,bits1);
}
typedef void (*PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC_HPP)(GLenum,GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLsizei,const void *);
static inline void CompressedMultiTexSubImage2DEXT(GLenum texunit1,GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLsizei width1,GLsizei height1,GLenum format1,GLsizei imageSize1,const void * bits1)
{
	static PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC_HPP>(_impl::_get_proc_address("glCompressedMultiTexSubImage2DEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,xoffset1,yoffset1,width1,height1,format1,imageSize1,bits1);
}
typedef void (*PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC_HPP)(GLenum,GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLsizei,const void *);
static inline void CompressedMultiTexSubImage3DEXT(GLenum texunit1,GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLsizei width1,GLsizei height1,GLsizei depth1,GLenum format1,GLsizei imageSize1,const void * bits1)
{
	static PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC_HPP>(_impl::_get_proc_address("glCompressedMultiTexSubImage3DEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,xoffset1,yoffset1,zoffset1,width1,height1,depth1,format1,imageSize1,bits1);
}
typedef void (*PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC_HPP)(GLuint,GLenum,GLint,GLenum,GLsizei,GLint,GLsizei,const void *);
static inline void CompressedTextureImage1DEXT(GLuint texture1,GLenum target1,GLint level1,GLenum internalformat1,GLsizei width1,GLint border1,GLsizei imageSize1,const void * bits1)
{
	static PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC_HPP>(_impl::_get_proc_address("glCompressedTextureImage1DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,internalformat1,width1,border1,imageSize1,bits1);
}
typedef void (*PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC_HPP)(GLuint,GLenum,GLint,GLenum,GLsizei,GLsizei,GLint,GLsizei,const void *);
static inline void CompressedTextureImage2DEXT(GLuint texture1,GLenum target1,GLint level1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLint border1,GLsizei imageSize1,const void * bits1)
{
	static PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC_HPP>(_impl::_get_proc_address("glCompressedTextureImage2DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,internalformat1,width1,height1,border1,imageSize1,bits1);
}
typedef void (*PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC_HPP)(GLuint,GLenum,GLint,GLenum,GLsizei,GLsizei,GLsizei,GLint,GLsizei,const void *);
static inline void CompressedTextureImage3DEXT(GLuint texture1,GLenum target1,GLint level1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLsizei depth1,GLint border1,GLsizei imageSize1,const void * bits1)
{
	static PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC_HPP>(_impl::_get_proc_address("glCompressedTextureImage3DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,internalformat1,width1,height1,depth1,border1,imageSize1,bits1);
}
typedef void (*PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC_HPP)(GLuint,GLenum,GLint,GLint,GLsizei,GLenum,GLsizei,const void *);
static inline void CompressedTextureSubImage1DEXT(GLuint texture1,GLenum target1,GLint level1,GLint xoffset1,GLsizei width1,GLenum format1,GLsizei imageSize1,const void * bits1)
{
	static PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC_HPP>(_impl::_get_proc_address("glCompressedTextureSubImage1DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,xoffset1,width1,format1,imageSize1,bits1);
}
typedef void (*PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC_HPP)(GLuint,GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLsizei,const void *);
static inline void CompressedTextureSubImage2DEXT(GLuint texture1,GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLsizei width1,GLsizei height1,GLenum format1,GLsizei imageSize1,const void * bits1)
{
	static PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC_HPP>(_impl::_get_proc_address("glCompressedTextureSubImage2DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,xoffset1,yoffset1,width1,height1,format1,imageSize1,bits1);
}
typedef void (*PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC_HPP)(GLuint,GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLsizei,const void *);
static inline void CompressedTextureSubImage3DEXT(GLuint texture1,GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLsizei width1,GLsizei height1,GLsizei depth1,GLenum format1,GLsizei imageSize1,const void * bits1)
{
	static PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC_HPP>(_impl::_get_proc_address("glCompressedTextureSubImage3DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,xoffset1,yoffset1,zoffset1,width1,height1,depth1,format1,imageSize1,bits1);
}
typedef void (*PFNGLCOPYMULTITEXIMAGE1DEXTPROC_HPP)(GLenum,GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLint);
static inline void CopyMultiTexImage1DEXT(GLenum texunit1,GLenum target1,GLint level1,GLenum internalformat1,GLint x1,GLint y1,GLsizei width1,GLint border1)
{
	static PFNGLCOPYMULTITEXIMAGE1DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOPYMULTITEXIMAGE1DEXTPROC_HPP>(_impl::_get_proc_address("glCopyMultiTexImage1DEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,internalformat1,x1,y1,width1,border1);
}
typedef void (*PFNGLCOPYMULTITEXIMAGE2DEXTPROC_HPP)(GLenum,GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLsizei,GLint);
static inline void CopyMultiTexImage2DEXT(GLenum texunit1,GLenum target1,GLint level1,GLenum internalformat1,GLint x1,GLint y1,GLsizei width1,GLsizei height1,GLint border1)
{
	static PFNGLCOPYMULTITEXIMAGE2DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOPYMULTITEXIMAGE2DEXTPROC_HPP>(_impl::_get_proc_address("glCopyMultiTexImage2DEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,internalformat1,x1,y1,width1,height1,border1);
}
typedef void (*PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC_HPP)(GLenum,GLenum,GLint,GLint,GLint,GLint,GLsizei);
static inline void CopyMultiTexSubImage1DEXT(GLenum texunit1,GLenum target1,GLint level1,GLint xoffset1,GLint x1,GLint y1,GLsizei width1)
{
	static PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC_HPP>(_impl::_get_proc_address("glCopyMultiTexSubImage1DEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,xoffset1,x1,y1,width1);
}
typedef void (*PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC_HPP)(GLenum,GLenum,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
static inline void CopyMultiTexSubImage2DEXT(GLenum texunit1,GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLint x1,GLint y1,GLsizei width1,GLsizei height1)
{
	static PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC_HPP>(_impl::_get_proc_address("glCopyMultiTexSubImage2DEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,xoffset1,yoffset1,x1,y1,width1,height1);
}
typedef void (*PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC_HPP)(GLenum,GLenum,GLint,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
static inline void CopyMultiTexSubImage3DEXT(GLenum texunit1,GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLint x1,GLint y1,GLsizei width1,GLsizei height1)
{
	static PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC_HPP>(_impl::_get_proc_address("glCopyMultiTexSubImage3DEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,xoffset1,yoffset1,zoffset1,x1,y1,width1,height1);
}
typedef void (*PFNGLCOPYTEXTUREIMAGE1DEXTPROC_HPP)(GLuint,GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLint);
static inline void CopyTextureImage1DEXT(GLuint texture1,GLenum target1,GLint level1,GLenum internalformat1,GLint x1,GLint y1,GLsizei width1,GLint border1)
{
	static PFNGLCOPYTEXTUREIMAGE1DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOPYTEXTUREIMAGE1DEXTPROC_HPP>(_impl::_get_proc_address("glCopyTextureImage1DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,internalformat1,x1,y1,width1,border1);
}
typedef void (*PFNGLCOPYTEXTUREIMAGE2DEXTPROC_HPP)(GLuint,GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLsizei,GLint);
static inline void CopyTextureImage2DEXT(GLuint texture1,GLenum target1,GLint level1,GLenum internalformat1,GLint x1,GLint y1,GLsizei width1,GLsizei height1,GLint border1)
{
	static PFNGLCOPYTEXTUREIMAGE2DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOPYTEXTUREIMAGE2DEXTPROC_HPP>(_impl::_get_proc_address("glCopyTextureImage2DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,internalformat1,x1,y1,width1,height1,border1);
}
typedef void (*PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC_HPP)(GLuint,GLenum,GLint,GLint,GLint,GLint,GLsizei);
static inline void CopyTextureSubImage1DEXT(GLuint texture1,GLenum target1,GLint level1,GLint xoffset1,GLint x1,GLint y1,GLsizei width1)
{
	static PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC_HPP>(_impl::_get_proc_address("glCopyTextureSubImage1DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,xoffset1,x1,y1,width1);
}
typedef void (*PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC_HPP)(GLuint,GLenum,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
static inline void CopyTextureSubImage2DEXT(GLuint texture1,GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLint x1,GLint y1,GLsizei width1,GLsizei height1)
{
	static PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC_HPP>(_impl::_get_proc_address("glCopyTextureSubImage2DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,xoffset1,yoffset1,x1,y1,width1,height1);
}
typedef void (*PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC_HPP)(GLuint,GLenum,GLint,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
static inline void CopyTextureSubImage3DEXT(GLuint texture1,GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLint x1,GLint y1,GLsizei width1,GLsizei height1)
{
	static PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC_HPP fn=reinterpret_cast<PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC_HPP>(_impl::_get_proc_address("glCopyTextureSubImage3DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,xoffset1,yoffset1,zoffset1,x1,y1,width1,height1);
}
typedef void (*PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC_HPP)(GLenum,GLuint);
static inline void DisableClientStateIndexedEXT(GLenum array1,GLuint index1)
{
	static PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC_HPP fn=reinterpret_cast<PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC_HPP>(_impl::_get_proc_address("glDisableClientStateIndexedEXT","GL_EXT_direct_state_access"));
	 fn(array1,index1);
}
typedef void (*PFNGLDISABLECLIENTSTATEIEXTPROC_HPP)(GLenum,GLuint);
static inline void DisableClientStateiEXT(GLenum array1,GLuint index1)
{
	static PFNGLDISABLECLIENTSTATEIEXTPROC_HPP fn=reinterpret_cast<PFNGLDISABLECLIENTSTATEIEXTPROC_HPP>(_impl::_get_proc_address("glDisableClientStateiEXT","GL_EXT_direct_state_access"));
	 fn(array1,index1);
}
typedef void (*PFNGLDISABLEINDEXEDEXTPROC_HPP)(GLenum,GLuint);
static inline void DisableIndexedEXT(GLenum target1,GLuint index1)
{
	static PFNGLDISABLEINDEXEDEXTPROC_HPP fn=reinterpret_cast<PFNGLDISABLEINDEXEDEXTPROC_HPP>(_impl::_get_proc_address("glDisableIndexedEXT","GL_EXT_direct_state_access"));
	 fn(target1,index1);
}
typedef void (*PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC_HPP)(GLuint,GLuint);
static inline void DisableVertexArrayAttribEXT(GLuint vaobj1,GLuint index1)
{
	static PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC_HPP fn=reinterpret_cast<PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC_HPP>(_impl::_get_proc_address("glDisableVertexArrayAttribEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,index1);
}
typedef void (*PFNGLDISABLEVERTEXARRAYEXTPROC_HPP)(GLuint,GLenum);
static inline void DisableVertexArrayEXT(GLuint vaobj1,GLenum array1)
{
	static PFNGLDISABLEVERTEXARRAYEXTPROC_HPP fn=reinterpret_cast<PFNGLDISABLEVERTEXARRAYEXTPROC_HPP>(_impl::_get_proc_address("glDisableVertexArrayEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,array1);
}
typedef void (*PFNGLENABLECLIENTSTATEINDEXEDEXTPROC_HPP)(GLenum,GLuint);
static inline void EnableClientStateIndexedEXT(GLenum array1,GLuint index1)
{
	static PFNGLENABLECLIENTSTATEINDEXEDEXTPROC_HPP fn=reinterpret_cast<PFNGLENABLECLIENTSTATEINDEXEDEXTPROC_HPP>(_impl::_get_proc_address("glEnableClientStateIndexedEXT","GL_EXT_direct_state_access"));
	 fn(array1,index1);
}
typedef void (*PFNGLENABLECLIENTSTATEIEXTPROC_HPP)(GLenum,GLuint);
static inline void EnableClientStateiEXT(GLenum array1,GLuint index1)
{
	static PFNGLENABLECLIENTSTATEIEXTPROC_HPP fn=reinterpret_cast<PFNGLENABLECLIENTSTATEIEXTPROC_HPP>(_impl::_get_proc_address("glEnableClientStateiEXT","GL_EXT_direct_state_access"));
	 fn(array1,index1);
}
typedef void (*PFNGLENABLEINDEXEDEXTPROC_HPP)(GLenum,GLuint);
static inline void EnableIndexedEXT(GLenum target1,GLuint index1)
{
	static PFNGLENABLEINDEXEDEXTPROC_HPP fn=reinterpret_cast<PFNGLENABLEINDEXEDEXTPROC_HPP>(_impl::_get_proc_address("glEnableIndexedEXT","GL_EXT_direct_state_access"));
	 fn(target1,index1);
}
typedef void (*PFNGLENABLEVERTEXARRAYATTRIBEXTPROC_HPP)(GLuint,GLuint);
static inline void EnableVertexArrayAttribEXT(GLuint vaobj1,GLuint index1)
{
	static PFNGLENABLEVERTEXARRAYATTRIBEXTPROC_HPP fn=reinterpret_cast<PFNGLENABLEVERTEXARRAYATTRIBEXTPROC_HPP>(_impl::_get_proc_address("glEnableVertexArrayAttribEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,index1);
}
typedef void (*PFNGLENABLEVERTEXARRAYEXTPROC_HPP)(GLuint,GLenum);
static inline void EnableVertexArrayEXT(GLuint vaobj1,GLenum array1)
{
	static PFNGLENABLEVERTEXARRAYEXTPROC_HPP fn=reinterpret_cast<PFNGLENABLEVERTEXARRAYEXTPROC_HPP>(_impl::_get_proc_address("glEnableVertexArrayEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,array1);
}
typedef void (*PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC_HPP)(GLuint,GLintptr,GLsizeiptr);
static inline void FlushMappedNamedBufferRangeEXT(GLuint buffer1,GLintptr offset1,GLsizeiptr length1)
{
	static PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC_HPP fn=reinterpret_cast<PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC_HPP>(_impl::_get_proc_address("glFlushMappedNamedBufferRangeEXT","GL_EXT_direct_state_access"));
	 fn(buffer1,offset1,length1);
}
typedef void (*PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC_HPP)(GLuint,GLenum);
static inline void FramebufferDrawBufferEXT(GLuint framebuffer1,GLenum mode1)
{
	static PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC_HPP>(_impl::_get_proc_address("glFramebufferDrawBufferEXT","GL_EXT_direct_state_access"));
	 fn(framebuffer1,mode1);
}
typedef void (*PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC_HPP)(GLuint,GLsizei,const GLenum *);
static inline void FramebufferDrawBuffersEXT(GLuint framebuffer1,GLsizei n1,const GLenum * bufs1)
{
	static PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC_HPP>(_impl::_get_proc_address("glFramebufferDrawBuffersEXT","GL_EXT_direct_state_access"));
	 fn(framebuffer1,n1,bufs1);
}
typedef void (*PFNGLFRAMEBUFFERREADBUFFEREXTPROC_HPP)(GLuint,GLenum);
static inline void FramebufferReadBufferEXT(GLuint framebuffer1,GLenum mode1)
{
	static PFNGLFRAMEBUFFERREADBUFFEREXTPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERREADBUFFEREXTPROC_HPP>(_impl::_get_proc_address("glFramebufferReadBufferEXT","GL_EXT_direct_state_access"));
	 fn(framebuffer1,mode1);
}
typedef void (*PFNGLGENERATEMULTITEXMIPMAPEXTPROC_HPP)(GLenum,GLenum);
static inline void GenerateMultiTexMipmapEXT(GLenum texunit1,GLenum target1)
{
	static PFNGLGENERATEMULTITEXMIPMAPEXTPROC_HPP fn=reinterpret_cast<PFNGLGENERATEMULTITEXMIPMAPEXTPROC_HPP>(_impl::_get_proc_address("glGenerateMultiTexMipmapEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1);
}
typedef void (*PFNGLGENERATETEXTUREMIPMAPEXTPROC_HPP)(GLuint,GLenum);
static inline void GenerateTextureMipmapEXT(GLuint texture1,GLenum target1)
{
	static PFNGLGENERATETEXTUREMIPMAPEXTPROC_HPP fn=reinterpret_cast<PFNGLGENERATETEXTUREMIPMAPEXTPROC_HPP>(_impl::_get_proc_address("glGenerateTextureMipmapEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1);
}
typedef void (*PFNGLGETBOOLEANINDEXEDVEXTPROC_HPP)(GLenum,GLuint,GLboolean *);
static inline void GetBooleanIndexedvEXT(GLenum target1,GLuint index1,GLboolean * data1)
{
	static PFNGLGETBOOLEANINDEXEDVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETBOOLEANINDEXEDVEXTPROC_HPP>(_impl::_get_proc_address("glGetBooleanIndexedvEXT","GL_EXT_direct_state_access"));
	 fn(target1,index1,data1);
}
typedef void (*PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC_HPP)(GLenum,GLenum,GLint,void *);
static inline void GetCompressedMultiTexImageEXT(GLenum texunit1,GLenum target1,GLint lod1,void * img1)
{
	static PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC_HPP fn=reinterpret_cast<PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC_HPP>(_impl::_get_proc_address("glGetCompressedMultiTexImageEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,lod1,img1);
}
typedef void (*PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC_HPP)(GLuint,GLenum,GLint,void *);
static inline void GetCompressedTextureImageEXT(GLuint texture1,GLenum target1,GLint lod1,void * img1)
{
	static PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC_HPP fn=reinterpret_cast<PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC_HPP>(_impl::_get_proc_address("glGetCompressedTextureImageEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,lod1,img1);
}
typedef void (*PFNGLGETDOUBLEINDEXEDVEXTPROC_HPP)(GLenum,GLuint,GLdouble *);
static inline void GetDoubleIndexedvEXT(GLenum target1,GLuint index1,GLdouble * data1)
{
	static PFNGLGETDOUBLEINDEXEDVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETDOUBLEINDEXEDVEXTPROC_HPP>(_impl::_get_proc_address("glGetDoubleIndexedvEXT","GL_EXT_direct_state_access"));
	 fn(target1,index1,data1);
}
typedef void (*PFNGLGETDOUBLEI_VEXTPROC_HPP)(GLenum,GLuint,GLdouble *);
static inline void GetDoublei_vEXT(GLenum pname1,GLuint index1,GLdouble * params1)
{
	static PFNGLGETDOUBLEI_VEXTPROC_HPP fn=reinterpret_cast<PFNGLGETDOUBLEI_VEXTPROC_HPP>(_impl::_get_proc_address("glGetDoublei_vEXT","GL_EXT_direct_state_access"));
	 fn(pname1,index1,params1);
}
typedef void (*PFNGLGETFLOATINDEXEDVEXTPROC_HPP)(GLenum,GLuint,GLfloat *);
static inline void GetFloatIndexedvEXT(GLenum target1,GLuint index1,GLfloat * data1)
{
	static PFNGLGETFLOATINDEXEDVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETFLOATINDEXEDVEXTPROC_HPP>(_impl::_get_proc_address("glGetFloatIndexedvEXT","GL_EXT_direct_state_access"));
	 fn(target1,index1,data1);
}
typedef void (*PFNGLGETFLOATI_VEXTPROC_HPP)(GLenum,GLuint,GLfloat *);
static inline void GetFloati_vEXT(GLenum pname1,GLuint index1,GLfloat * params1)
{
	static PFNGLGETFLOATI_VEXTPROC_HPP fn=reinterpret_cast<PFNGLGETFLOATI_VEXTPROC_HPP>(_impl::_get_proc_address("glGetFloati_vEXT","GL_EXT_direct_state_access"));
	 fn(pname1,index1,params1);
}
typedef void (*PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetFramebufferParameterivEXT(GLuint framebuffer1,GLenum pname1,GLint * params1)
{
	static PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glGetFramebufferParameterivEXT","GL_EXT_direct_state_access"));
	 fn(framebuffer1,pname1,params1);
}
typedef void (*PFNGLGETINTEGERINDEXEDVEXTPROC_HPP)(GLenum,GLuint,GLint *);
static inline void GetIntegerIndexedvEXT(GLenum target1,GLuint index1,GLint * data1)
{
	static PFNGLGETINTEGERINDEXEDVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETINTEGERINDEXEDVEXTPROC_HPP>(_impl::_get_proc_address("glGetIntegerIndexedvEXT","GL_EXT_direct_state_access"));
	 fn(target1,index1,data1);
}
typedef void (*PFNGLGETMULTITEXENVFVEXTPROC_HPP)(GLenum,GLenum,GLenum,GLfloat *);
static inline void GetMultiTexEnvfvEXT(GLenum texunit1,GLenum target1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETMULTITEXENVFVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETMULTITEXENVFVEXTPROC_HPP>(_impl::_get_proc_address("glGetMultiTexEnvfvEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,pname1,params1);
}
typedef void (*PFNGLGETMULTITEXENVIVEXTPROC_HPP)(GLenum,GLenum,GLenum,GLint *);
static inline void GetMultiTexEnvivEXT(GLenum texunit1,GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETMULTITEXENVIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETMULTITEXENVIVEXTPROC_HPP>(_impl::_get_proc_address("glGetMultiTexEnvivEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,pname1,params1);
}
typedef void (*PFNGLGETMULTITEXGENDVEXTPROC_HPP)(GLenum,GLenum,GLenum,GLdouble *);
static inline void GetMultiTexGendvEXT(GLenum texunit1,GLenum coord1,GLenum pname1,GLdouble * params1)
{
	static PFNGLGETMULTITEXGENDVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETMULTITEXGENDVEXTPROC_HPP>(_impl::_get_proc_address("glGetMultiTexGendvEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,coord1,pname1,params1);
}
typedef void (*PFNGLGETMULTITEXGENFVEXTPROC_HPP)(GLenum,GLenum,GLenum,GLfloat *);
static inline void GetMultiTexGenfvEXT(GLenum texunit1,GLenum coord1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETMULTITEXGENFVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETMULTITEXGENFVEXTPROC_HPP>(_impl::_get_proc_address("glGetMultiTexGenfvEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,coord1,pname1,params1);
}
typedef void (*PFNGLGETMULTITEXGENIVEXTPROC_HPP)(GLenum,GLenum,GLenum,GLint *);
static inline void GetMultiTexGenivEXT(GLenum texunit1,GLenum coord1,GLenum pname1,GLint * params1)
{
	static PFNGLGETMULTITEXGENIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETMULTITEXGENIVEXTPROC_HPP>(_impl::_get_proc_address("glGetMultiTexGenivEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,coord1,pname1,params1);
}
typedef void (*PFNGLGETMULTITEXIMAGEEXTPROC_HPP)(GLenum,GLenum,GLint,GLenum,GLenum,void *);
static inline void GetMultiTexImageEXT(GLenum texunit1,GLenum target1,GLint level1,GLenum format1,GLenum type1,void * pixels1)
{
	static PFNGLGETMULTITEXIMAGEEXTPROC_HPP fn=reinterpret_cast<PFNGLGETMULTITEXIMAGEEXTPROC_HPP>(_impl::_get_proc_address("glGetMultiTexImageEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,format1,type1,pixels1);
}
typedef void (*PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC_HPP)(GLenum,GLenum,GLint,GLenum,GLfloat *);
static inline void GetMultiTexLevelParameterfvEXT(GLenum texunit1,GLenum target1,GLint level1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC_HPP>(_impl::_get_proc_address("glGetMultiTexLevelParameterfvEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,pname1,params1);
}
typedef void (*PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC_HPP)(GLenum,GLenum,GLint,GLenum,GLint *);
static inline void GetMultiTexLevelParameterivEXT(GLenum texunit1,GLenum target1,GLint level1,GLenum pname1,GLint * params1)
{
	static PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glGetMultiTexLevelParameterivEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,pname1,params1);
}
typedef void (*PFNGLGETMULTITEXPARAMETERIIVEXTPROC_HPP)(GLenum,GLenum,GLenum,GLint *);
static inline void GetMultiTexParameterIivEXT(GLenum texunit1,GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETMULTITEXPARAMETERIIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETMULTITEXPARAMETERIIVEXTPROC_HPP>(_impl::_get_proc_address("glGetMultiTexParameterIivEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,pname1,params1);
}
typedef void (*PFNGLGETMULTITEXPARAMETERIUIVEXTPROC_HPP)(GLenum,GLenum,GLenum,GLuint *);
static inline void GetMultiTexParameterIuivEXT(GLenum texunit1,GLenum target1,GLenum pname1,GLuint * params1)
{
	static PFNGLGETMULTITEXPARAMETERIUIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETMULTITEXPARAMETERIUIVEXTPROC_HPP>(_impl::_get_proc_address("glGetMultiTexParameterIuivEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,pname1,params1);
}
typedef void (*PFNGLGETMULTITEXPARAMETERFVEXTPROC_HPP)(GLenum,GLenum,GLenum,GLfloat *);
static inline void GetMultiTexParameterfvEXT(GLenum texunit1,GLenum target1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETMULTITEXPARAMETERFVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETMULTITEXPARAMETERFVEXTPROC_HPP>(_impl::_get_proc_address("glGetMultiTexParameterfvEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,pname1,params1);
}
typedef void (*PFNGLGETMULTITEXPARAMETERIVEXTPROC_HPP)(GLenum,GLenum,GLenum,GLint *);
static inline void GetMultiTexParameterivEXT(GLenum texunit1,GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETMULTITEXPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETMULTITEXPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glGetMultiTexParameterivEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,pname1,params1);
}
typedef void (*PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetNamedBufferParameterivEXT(GLuint buffer1,GLenum pname1,GLint * params1)
{
	static PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glGetNamedBufferParameterivEXT","GL_EXT_direct_state_access"));
	 fn(buffer1,pname1,params1);
}
typedef void (*PFNGLGETNAMEDBUFFERPOINTERVEXTPROC_HPP)(GLuint,GLenum,void **);
static inline void GetNamedBufferPointervEXT(GLuint buffer1,GLenum pname1,void ** params1)
{
	static PFNGLGETNAMEDBUFFERPOINTERVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDBUFFERPOINTERVEXTPROC_HPP>(_impl::_get_proc_address("glGetNamedBufferPointervEXT","GL_EXT_direct_state_access"));
	 fn(buffer1,pname1,params1);
}
typedef void (*PFNGLGETNAMEDBUFFERSUBDATAEXTPROC_HPP)(GLuint,GLintptr,GLsizeiptr,void *);
static inline void GetNamedBufferSubDataEXT(GLuint buffer1,GLintptr offset1,GLsizeiptr size1,void * data1)
{
	static PFNGLGETNAMEDBUFFERSUBDATAEXTPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDBUFFERSUBDATAEXTPROC_HPP>(_impl::_get_proc_address("glGetNamedBufferSubDataEXT","GL_EXT_direct_state_access"));
	 fn(buffer1,offset1,size1,data1);
}
typedef void (*PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC_HPP)(GLuint,GLenum,GLenum,GLint *);
static inline void GetNamedFramebufferAttachmentParameterivEXT(GLuint framebuffer1,GLenum attachment1,GLenum pname1,GLint * params1)
{
	static PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glGetNamedFramebufferAttachmentParameterivEXT","GL_EXT_direct_state_access"));
	 fn(framebuffer1,attachment1,pname1,params1);
}
typedef void (*PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetNamedFramebufferParameterivEXT(GLuint framebuffer1,GLenum pname1,GLint * params1)
{
	static PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glGetNamedFramebufferParameterivEXT","GL_EXT_direct_state_access"));
	 fn(framebuffer1,pname1,params1);
}
typedef void (*PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC_HPP)(GLuint,GLenum,GLuint,GLint *);
static inline void GetNamedProgramLocalParameterIivEXT(GLuint program1,GLenum target1,GLuint index1,GLint * params1)
{
	static PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC_HPP>(_impl::_get_proc_address("glGetNamedProgramLocalParameterIivEXT","GL_EXT_direct_state_access"));
	 fn(program1,target1,index1,params1);
}
typedef void (*PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC_HPP)(GLuint,GLenum,GLuint,GLuint *);
static inline void GetNamedProgramLocalParameterIuivEXT(GLuint program1,GLenum target1,GLuint index1,GLuint * params1)
{
	static PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC_HPP>(_impl::_get_proc_address("glGetNamedProgramLocalParameterIuivEXT","GL_EXT_direct_state_access"));
	 fn(program1,target1,index1,params1);
}
typedef void (*PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC_HPP)(GLuint,GLenum,GLuint,GLdouble *);
static inline void GetNamedProgramLocalParameterdvEXT(GLuint program1,GLenum target1,GLuint index1,GLdouble * params1)
{
	static PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC_HPP>(_impl::_get_proc_address("glGetNamedProgramLocalParameterdvEXT","GL_EXT_direct_state_access"));
	 fn(program1,target1,index1,params1);
}
typedef void (*PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC_HPP)(GLuint,GLenum,GLuint,GLfloat *);
static inline void GetNamedProgramLocalParameterfvEXT(GLuint program1,GLenum target1,GLuint index1,GLfloat * params1)
{
	static PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC_HPP>(_impl::_get_proc_address("glGetNamedProgramLocalParameterfvEXT","GL_EXT_direct_state_access"));
	 fn(program1,target1,index1,params1);
}
typedef void (*PFNGLGETNAMEDPROGRAMSTRINGEXTPROC_HPP)(GLuint,GLenum,GLenum,void *);
static inline void GetNamedProgramStringEXT(GLuint program1,GLenum target1,GLenum pname1,void * string1)
{
	static PFNGLGETNAMEDPROGRAMSTRINGEXTPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDPROGRAMSTRINGEXTPROC_HPP>(_impl::_get_proc_address("glGetNamedProgramStringEXT","GL_EXT_direct_state_access"));
	 fn(program1,target1,pname1,string1);
}
typedef void (*PFNGLGETNAMEDPROGRAMIVEXTPROC_HPP)(GLuint,GLenum,GLenum,GLint *);
static inline void GetNamedProgramivEXT(GLuint program1,GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETNAMEDPROGRAMIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDPROGRAMIVEXTPROC_HPP>(_impl::_get_proc_address("glGetNamedProgramivEXT","GL_EXT_direct_state_access"));
	 fn(program1,target1,pname1,params1);
}
typedef void (*PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetNamedRenderbufferParameterivEXT(GLuint renderbuffer1,GLenum pname1,GLint * params1)
{
	static PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glGetNamedRenderbufferParameterivEXT","GL_EXT_direct_state_access"));
	 fn(renderbuffer1,pname1,params1);
}
typedef void (*PFNGLGETPOINTERINDEXEDVEXTPROC_HPP)(GLenum,GLuint,void **);
static inline void GetPointerIndexedvEXT(GLenum target1,GLuint index1,void ** data1)
{
	static PFNGLGETPOINTERINDEXEDVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETPOINTERINDEXEDVEXTPROC_HPP>(_impl::_get_proc_address("glGetPointerIndexedvEXT","GL_EXT_direct_state_access"));
	 fn(target1,index1,data1);
}
typedef void (*PFNGLGETPOINTERI_VEXTPROC_HPP)(GLenum,GLuint,void **);
static inline void GetPointeri_vEXT(GLenum pname1,GLuint index1,void ** params1)
{
	static PFNGLGETPOINTERI_VEXTPROC_HPP fn=reinterpret_cast<PFNGLGETPOINTERI_VEXTPROC_HPP>(_impl::_get_proc_address("glGetPointeri_vEXT","GL_EXT_direct_state_access"));
	 fn(pname1,index1,params1);
}
typedef void (*PFNGLGETTEXTUREIMAGEEXTPROC_HPP)(GLuint,GLenum,GLint,GLenum,GLenum,void *);
static inline void GetTextureImageEXT(GLuint texture1,GLenum target1,GLint level1,GLenum format1,GLenum type1,void * pixels1)
{
	static PFNGLGETTEXTUREIMAGEEXTPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTUREIMAGEEXTPROC_HPP>(_impl::_get_proc_address("glGetTextureImageEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,format1,type1,pixels1);
}
typedef void (*PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC_HPP)(GLuint,GLenum,GLint,GLenum,GLfloat *);
static inline void GetTextureLevelParameterfvEXT(GLuint texture1,GLenum target1,GLint level1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC_HPP>(_impl::_get_proc_address("glGetTextureLevelParameterfvEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,pname1,params1);
}
typedef void (*PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC_HPP)(GLuint,GLenum,GLint,GLenum,GLint *);
static inline void GetTextureLevelParameterivEXT(GLuint texture1,GLenum target1,GLint level1,GLenum pname1,GLint * params1)
{
	static PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glGetTextureLevelParameterivEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,pname1,params1);
}
typedef void (*PFNGLGETTEXTUREPARAMETERIIVEXTPROC_HPP)(GLuint,GLenum,GLenum,GLint *);
static inline void GetTextureParameterIivEXT(GLuint texture1,GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETTEXTUREPARAMETERIIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTUREPARAMETERIIVEXTPROC_HPP>(_impl::_get_proc_address("glGetTextureParameterIivEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,pname1,params1);
}
typedef void (*PFNGLGETTEXTUREPARAMETERIUIVEXTPROC_HPP)(GLuint,GLenum,GLenum,GLuint *);
static inline void GetTextureParameterIuivEXT(GLuint texture1,GLenum target1,GLenum pname1,GLuint * params1)
{
	static PFNGLGETTEXTUREPARAMETERIUIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTUREPARAMETERIUIVEXTPROC_HPP>(_impl::_get_proc_address("glGetTextureParameterIuivEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,pname1,params1);
}
typedef void (*PFNGLGETTEXTUREPARAMETERFVEXTPROC_HPP)(GLuint,GLenum,GLenum,GLfloat *);
static inline void GetTextureParameterfvEXT(GLuint texture1,GLenum target1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETTEXTUREPARAMETERFVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTUREPARAMETERFVEXTPROC_HPP>(_impl::_get_proc_address("glGetTextureParameterfvEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,pname1,params1);
}
typedef void (*PFNGLGETTEXTUREPARAMETERIVEXTPROC_HPP)(GLuint,GLenum,GLenum,GLint *);
static inline void GetTextureParameterivEXT(GLuint texture1,GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETTEXTUREPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTUREPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glGetTextureParameterivEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,pname1,params1);
}
typedef void (*PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC_HPP)(GLuint,GLuint,GLenum,GLint *);
static inline void GetVertexArrayIntegeri_vEXT(GLuint vaobj1,GLuint index1,GLenum pname1,GLint * param1)
{
	static PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC_HPP>(_impl::_get_proc_address("glGetVertexArrayIntegeri_vEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,index1,pname1,param1);
}
typedef void (*PFNGLGETVERTEXARRAYINTEGERVEXTPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetVertexArrayIntegervEXT(GLuint vaobj1,GLenum pname1,GLint * param1)
{
	static PFNGLGETVERTEXARRAYINTEGERVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXARRAYINTEGERVEXTPROC_HPP>(_impl::_get_proc_address("glGetVertexArrayIntegervEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,pname1,param1);
}
typedef void (*PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC_HPP)(GLuint,GLuint,GLenum,void **);
static inline void GetVertexArrayPointeri_vEXT(GLuint vaobj1,GLuint index1,GLenum pname1,void ** param1)
{
	static PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC_HPP>(_impl::_get_proc_address("glGetVertexArrayPointeri_vEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,index1,pname1,param1);
}
typedef void (*PFNGLGETVERTEXARRAYPOINTERVEXTPROC_HPP)(GLuint,GLenum,void **);
static inline void GetVertexArrayPointervEXT(GLuint vaobj1,GLenum pname1,void ** param1)
{
	static PFNGLGETVERTEXARRAYPOINTERVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXARRAYPOINTERVEXTPROC_HPP>(_impl::_get_proc_address("glGetVertexArrayPointervEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,pname1,param1);
}
typedef GLboolean (*PFNGLISENABLEDINDEXEDEXTPROC_HPP)(GLenum,GLuint);
static inline GLboolean IsEnabledIndexedEXT(GLenum target1,GLuint index1)
{
	static PFNGLISENABLEDINDEXEDEXTPROC_HPP fn=reinterpret_cast<PFNGLISENABLEDINDEXEDEXTPROC_HPP>(_impl::_get_proc_address("glIsEnabledIndexedEXT","GL_EXT_direct_state_access"));
	return fn(target1,index1);
}
typedef void * (*PFNGLMAPNAMEDBUFFEREXTPROC_HPP)(GLuint,GLenum);
static inline void * MapNamedBufferEXT(GLuint buffer1,GLenum access1)
{
	static PFNGLMAPNAMEDBUFFEREXTPROC_HPP fn=reinterpret_cast<PFNGLMAPNAMEDBUFFEREXTPROC_HPP>(_impl::_get_proc_address("glMapNamedBufferEXT","GL_EXT_direct_state_access"));
	return fn(buffer1,access1);
}
typedef void * (*PFNGLMAPNAMEDBUFFERRANGEEXTPROC_HPP)(GLuint,GLintptr,GLsizeiptr,GLbitfield);
static inline void * MapNamedBufferRangeEXT(GLuint buffer1,GLintptr offset1,GLsizeiptr length1,GLbitfield access1)
{
	static PFNGLMAPNAMEDBUFFERRANGEEXTPROC_HPP fn=reinterpret_cast<PFNGLMAPNAMEDBUFFERRANGEEXTPROC_HPP>(_impl::_get_proc_address("glMapNamedBufferRangeEXT","GL_EXT_direct_state_access"));
	return fn(buffer1,offset1,length1,access1);
}
typedef void (*PFNGLMATRIXFRUSTUMEXTPROC_HPP)(GLenum,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void MatrixFrustumEXT(GLenum mode1,GLdouble left1,GLdouble right1,GLdouble bottom1,GLdouble top1,GLdouble zNear1,GLdouble zFar1)
{
	static PFNGLMATRIXFRUSTUMEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXFRUSTUMEXTPROC_HPP>(_impl::_get_proc_address("glMatrixFrustumEXT","GL_EXT_direct_state_access"));
	 fn(mode1,left1,right1,bottom1,top1,zNear1,zFar1);
}
typedef void (*PFNGLMATRIXLOADIDENTITYEXTPROC_HPP)(GLenum);
static inline void MatrixLoadIdentityEXT(GLenum mode1)
{
	static PFNGLMATRIXLOADIDENTITYEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXLOADIDENTITYEXTPROC_HPP>(_impl::_get_proc_address("glMatrixLoadIdentityEXT","GL_EXT_direct_state_access"));
	 fn(mode1);
}
typedef void (*PFNGLMATRIXLOADTRANSPOSEDEXTPROC_HPP)(GLenum,const GLdouble *);
static inline void MatrixLoadTransposedEXT(GLenum mode1,const GLdouble * m1)
{
	static PFNGLMATRIXLOADTRANSPOSEDEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXLOADTRANSPOSEDEXTPROC_HPP>(_impl::_get_proc_address("glMatrixLoadTransposedEXT","GL_EXT_direct_state_access"));
	 fn(mode1,m1);
}
typedef void (*PFNGLMATRIXLOADTRANSPOSEFEXTPROC_HPP)(GLenum,const GLfloat *);
static inline void MatrixLoadTransposefEXT(GLenum mode1,const GLfloat * m1)
{
	static PFNGLMATRIXLOADTRANSPOSEFEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXLOADTRANSPOSEFEXTPROC_HPP>(_impl::_get_proc_address("glMatrixLoadTransposefEXT","GL_EXT_direct_state_access"));
	 fn(mode1,m1);
}
typedef void (*PFNGLMATRIXLOADDEXTPROC_HPP)(GLenum,const GLdouble *);
static inline void MatrixLoaddEXT(GLenum mode1,const GLdouble * m1)
{
	static PFNGLMATRIXLOADDEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXLOADDEXTPROC_HPP>(_impl::_get_proc_address("glMatrixLoaddEXT","GL_EXT_direct_state_access"));
	 fn(mode1,m1);
}
typedef void (*PFNGLMATRIXLOADFEXTPROC_HPP)(GLenum,const GLfloat *);
static inline void MatrixLoadfEXT(GLenum mode1,const GLfloat * m1)
{
	static PFNGLMATRIXLOADFEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXLOADFEXTPROC_HPP>(_impl::_get_proc_address("glMatrixLoadfEXT","GL_EXT_direct_state_access"));
	 fn(mode1,m1);
}
typedef void (*PFNGLMATRIXMULTTRANSPOSEDEXTPROC_HPP)(GLenum,const GLdouble *);
static inline void MatrixMultTransposedEXT(GLenum mode1,const GLdouble * m1)
{
	static PFNGLMATRIXMULTTRANSPOSEDEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXMULTTRANSPOSEDEXTPROC_HPP>(_impl::_get_proc_address("glMatrixMultTransposedEXT","GL_EXT_direct_state_access"));
	 fn(mode1,m1);
}
typedef void (*PFNGLMATRIXMULTTRANSPOSEFEXTPROC_HPP)(GLenum,const GLfloat *);
static inline void MatrixMultTransposefEXT(GLenum mode1,const GLfloat * m1)
{
	static PFNGLMATRIXMULTTRANSPOSEFEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXMULTTRANSPOSEFEXTPROC_HPP>(_impl::_get_proc_address("glMatrixMultTransposefEXT","GL_EXT_direct_state_access"));
	 fn(mode1,m1);
}
typedef void (*PFNGLMATRIXMULTDEXTPROC_HPP)(GLenum,const GLdouble *);
static inline void MatrixMultdEXT(GLenum mode1,const GLdouble * m1)
{
	static PFNGLMATRIXMULTDEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXMULTDEXTPROC_HPP>(_impl::_get_proc_address("glMatrixMultdEXT","GL_EXT_direct_state_access"));
	 fn(mode1,m1);
}
typedef void (*PFNGLMATRIXMULTFEXTPROC_HPP)(GLenum,const GLfloat *);
static inline void MatrixMultfEXT(GLenum mode1,const GLfloat * m1)
{
	static PFNGLMATRIXMULTFEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXMULTFEXTPROC_HPP>(_impl::_get_proc_address("glMatrixMultfEXT","GL_EXT_direct_state_access"));
	 fn(mode1,m1);
}
typedef void (*PFNGLMATRIXORTHOEXTPROC_HPP)(GLenum,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void MatrixOrthoEXT(GLenum mode1,GLdouble left1,GLdouble right1,GLdouble bottom1,GLdouble top1,GLdouble zNear1,GLdouble zFar1)
{
	static PFNGLMATRIXORTHOEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXORTHOEXTPROC_HPP>(_impl::_get_proc_address("glMatrixOrthoEXT","GL_EXT_direct_state_access"));
	 fn(mode1,left1,right1,bottom1,top1,zNear1,zFar1);
}
typedef void (*PFNGLMATRIXPOPEXTPROC_HPP)(GLenum);
static inline void MatrixPopEXT(GLenum mode1)
{
	static PFNGLMATRIXPOPEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXPOPEXTPROC_HPP>(_impl::_get_proc_address("glMatrixPopEXT","GL_EXT_direct_state_access"));
	 fn(mode1);
}
typedef void (*PFNGLMATRIXPUSHEXTPROC_HPP)(GLenum);
static inline void MatrixPushEXT(GLenum mode1)
{
	static PFNGLMATRIXPUSHEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXPUSHEXTPROC_HPP>(_impl::_get_proc_address("glMatrixPushEXT","GL_EXT_direct_state_access"));
	 fn(mode1);
}
typedef void (*PFNGLMATRIXROTATEDEXTPROC_HPP)(GLenum,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void MatrixRotatedEXT(GLenum mode1,GLdouble angle1,GLdouble x1,GLdouble y1,GLdouble z1)
{
	static PFNGLMATRIXROTATEDEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXROTATEDEXTPROC_HPP>(_impl::_get_proc_address("glMatrixRotatedEXT","GL_EXT_direct_state_access"));
	 fn(mode1,angle1,x1,y1,z1);
}
typedef void (*PFNGLMATRIXROTATEFEXTPROC_HPP)(GLenum,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void MatrixRotatefEXT(GLenum mode1,GLfloat angle1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLMATRIXROTATEFEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXROTATEFEXTPROC_HPP>(_impl::_get_proc_address("glMatrixRotatefEXT","GL_EXT_direct_state_access"));
	 fn(mode1,angle1,x1,y1,z1);
}
typedef void (*PFNGLMATRIXSCALEDEXTPROC_HPP)(GLenum,GLdouble,GLdouble,GLdouble);
static inline void MatrixScaledEXT(GLenum mode1,GLdouble x1,GLdouble y1,GLdouble z1)
{
	static PFNGLMATRIXSCALEDEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXSCALEDEXTPROC_HPP>(_impl::_get_proc_address("glMatrixScaledEXT","GL_EXT_direct_state_access"));
	 fn(mode1,x1,y1,z1);
}
typedef void (*PFNGLMATRIXSCALEFEXTPROC_HPP)(GLenum,GLfloat,GLfloat,GLfloat);
static inline void MatrixScalefEXT(GLenum mode1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLMATRIXSCALEFEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXSCALEFEXTPROC_HPP>(_impl::_get_proc_address("glMatrixScalefEXT","GL_EXT_direct_state_access"));
	 fn(mode1,x1,y1,z1);
}
typedef void (*PFNGLMATRIXTRANSLATEDEXTPROC_HPP)(GLenum,GLdouble,GLdouble,GLdouble);
static inline void MatrixTranslatedEXT(GLenum mode1,GLdouble x1,GLdouble y1,GLdouble z1)
{
	static PFNGLMATRIXTRANSLATEDEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXTRANSLATEDEXTPROC_HPP>(_impl::_get_proc_address("glMatrixTranslatedEXT","GL_EXT_direct_state_access"));
	 fn(mode1,x1,y1,z1);
}
typedef void (*PFNGLMATRIXTRANSLATEFEXTPROC_HPP)(GLenum,GLfloat,GLfloat,GLfloat);
static inline void MatrixTranslatefEXT(GLenum mode1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLMATRIXTRANSLATEFEXTPROC_HPP fn=reinterpret_cast<PFNGLMATRIXTRANSLATEFEXTPROC_HPP>(_impl::_get_proc_address("glMatrixTranslatefEXT","GL_EXT_direct_state_access"));
	 fn(mode1,x1,y1,z1);
}
typedef void (*PFNGLMULTITEXBUFFEREXTPROC_HPP)(GLenum,GLenum,GLenum,GLuint);
static inline void MultiTexBufferEXT(GLenum texunit1,GLenum target1,GLenum internalformat1,GLuint buffer1)
{
	static PFNGLMULTITEXBUFFEREXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXBUFFEREXTPROC_HPP>(_impl::_get_proc_address("glMultiTexBufferEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,internalformat1,buffer1);
}
typedef void (*PFNGLMULTITEXCOORDPOINTEREXTPROC_HPP)(GLenum,GLint,GLenum,GLsizei,const void *);
static inline void MultiTexCoordPointerEXT(GLenum texunit1,GLint size1,GLenum type1,GLsizei stride1,const void * pointer1)
{
	static PFNGLMULTITEXCOORDPOINTEREXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORDPOINTEREXTPROC_HPP>(_impl::_get_proc_address("glMultiTexCoordPointerEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,size1,type1,stride1,pointer1);
}
typedef void (*PFNGLMULTITEXENVFEXTPROC_HPP)(GLenum,GLenum,GLenum,GLfloat);
static inline void MultiTexEnvfEXT(GLenum texunit1,GLenum target1,GLenum pname1,GLfloat param1)
{
	static PFNGLMULTITEXENVFEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXENVFEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexEnvfEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,pname1,param1);
}
typedef void (*PFNGLMULTITEXENVFVEXTPROC_HPP)(GLenum,GLenum,GLenum,const GLfloat *);
static inline void MultiTexEnvfvEXT(GLenum texunit1,GLenum target1,GLenum pname1,const GLfloat * params1)
{
	static PFNGLMULTITEXENVFVEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXENVFVEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexEnvfvEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,pname1,params1);
}
typedef void (*PFNGLMULTITEXENVIEXTPROC_HPP)(GLenum,GLenum,GLenum,GLint);
static inline void MultiTexEnviEXT(GLenum texunit1,GLenum target1,GLenum pname1,GLint param1)
{
	static PFNGLMULTITEXENVIEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXENVIEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexEnviEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,pname1,param1);
}
typedef void (*PFNGLMULTITEXENVIVEXTPROC_HPP)(GLenum,GLenum,GLenum,const GLint *);
static inline void MultiTexEnvivEXT(GLenum texunit1,GLenum target1,GLenum pname1,const GLint * params1)
{
	static PFNGLMULTITEXENVIVEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXENVIVEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexEnvivEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,pname1,params1);
}
typedef void (*PFNGLMULTITEXGENDEXTPROC_HPP)(GLenum,GLenum,GLenum,GLdouble);
static inline void MultiTexGendEXT(GLenum texunit1,GLenum coord1,GLenum pname1,GLdouble param1)
{
	static PFNGLMULTITEXGENDEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXGENDEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexGendEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,coord1,pname1,param1);
}
typedef void (*PFNGLMULTITEXGENDVEXTPROC_HPP)(GLenum,GLenum,GLenum,const GLdouble *);
static inline void MultiTexGendvEXT(GLenum texunit1,GLenum coord1,GLenum pname1,const GLdouble * params1)
{
	static PFNGLMULTITEXGENDVEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXGENDVEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexGendvEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,coord1,pname1,params1);
}
typedef void (*PFNGLMULTITEXGENFEXTPROC_HPP)(GLenum,GLenum,GLenum,GLfloat);
static inline void MultiTexGenfEXT(GLenum texunit1,GLenum coord1,GLenum pname1,GLfloat param1)
{
	static PFNGLMULTITEXGENFEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXGENFEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexGenfEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,coord1,pname1,param1);
}
typedef void (*PFNGLMULTITEXGENFVEXTPROC_HPP)(GLenum,GLenum,GLenum,const GLfloat *);
static inline void MultiTexGenfvEXT(GLenum texunit1,GLenum coord1,GLenum pname1,const GLfloat * params1)
{
	static PFNGLMULTITEXGENFVEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXGENFVEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexGenfvEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,coord1,pname1,params1);
}
typedef void (*PFNGLMULTITEXGENIEXTPROC_HPP)(GLenum,GLenum,GLenum,GLint);
static inline void MultiTexGeniEXT(GLenum texunit1,GLenum coord1,GLenum pname1,GLint param1)
{
	static PFNGLMULTITEXGENIEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXGENIEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexGeniEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,coord1,pname1,param1);
}
typedef void (*PFNGLMULTITEXGENIVEXTPROC_HPP)(GLenum,GLenum,GLenum,const GLint *);
static inline void MultiTexGenivEXT(GLenum texunit1,GLenum coord1,GLenum pname1,const GLint * params1)
{
	static PFNGLMULTITEXGENIVEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXGENIVEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexGenivEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,coord1,pname1,params1);
}
typedef void (*PFNGLMULTITEXIMAGE1DEXTPROC_HPP)(GLenum,GLenum,GLint,GLint,GLsizei,GLint,GLenum,GLenum,const void *);
static inline void MultiTexImage1DEXT(GLenum texunit1,GLenum target1,GLint level1,GLint internalformat1,GLsizei width1,GLint border1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLMULTITEXIMAGE1DEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXIMAGE1DEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexImage1DEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,internalformat1,width1,border1,format1,type1,pixels1);
}
typedef void (*PFNGLMULTITEXIMAGE2DEXTPROC_HPP)(GLenum,GLenum,GLint,GLint,GLsizei,GLsizei,GLint,GLenum,GLenum,const void *);
static inline void MultiTexImage2DEXT(GLenum texunit1,GLenum target1,GLint level1,GLint internalformat1,GLsizei width1,GLsizei height1,GLint border1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLMULTITEXIMAGE2DEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXIMAGE2DEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexImage2DEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,internalformat1,width1,height1,border1,format1,type1,pixels1);
}
typedef void (*PFNGLMULTITEXIMAGE3DEXTPROC_HPP)(GLenum,GLenum,GLint,GLint,GLsizei,GLsizei,GLsizei,GLint,GLenum,GLenum,const void *);
static inline void MultiTexImage3DEXT(GLenum texunit1,GLenum target1,GLint level1,GLint internalformat1,GLsizei width1,GLsizei height1,GLsizei depth1,GLint border1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLMULTITEXIMAGE3DEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXIMAGE3DEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexImage3DEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,internalformat1,width1,height1,depth1,border1,format1,type1,pixels1);
}
typedef void (*PFNGLMULTITEXPARAMETERIIVEXTPROC_HPP)(GLenum,GLenum,GLenum,const GLint *);
static inline void MultiTexParameterIivEXT(GLenum texunit1,GLenum target1,GLenum pname1,const GLint * params1)
{
	static PFNGLMULTITEXPARAMETERIIVEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXPARAMETERIIVEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexParameterIivEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,pname1,params1);
}
typedef void (*PFNGLMULTITEXPARAMETERIUIVEXTPROC_HPP)(GLenum,GLenum,GLenum,const GLuint *);
static inline void MultiTexParameterIuivEXT(GLenum texunit1,GLenum target1,GLenum pname1,const GLuint * params1)
{
	static PFNGLMULTITEXPARAMETERIUIVEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXPARAMETERIUIVEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexParameterIuivEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,pname1,params1);
}
typedef void (*PFNGLMULTITEXPARAMETERFEXTPROC_HPP)(GLenum,GLenum,GLenum,GLfloat);
static inline void MultiTexParameterfEXT(GLenum texunit1,GLenum target1,GLenum pname1,GLfloat param1)
{
	static PFNGLMULTITEXPARAMETERFEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXPARAMETERFEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexParameterfEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,pname1,param1);
}
typedef void (*PFNGLMULTITEXPARAMETERFVEXTPROC_HPP)(GLenum,GLenum,GLenum,const GLfloat *);
static inline void MultiTexParameterfvEXT(GLenum texunit1,GLenum target1,GLenum pname1,const GLfloat * params1)
{
	static PFNGLMULTITEXPARAMETERFVEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXPARAMETERFVEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexParameterfvEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,pname1,params1);
}
typedef void (*PFNGLMULTITEXPARAMETERIEXTPROC_HPP)(GLenum,GLenum,GLenum,GLint);
static inline void MultiTexParameteriEXT(GLenum texunit1,GLenum target1,GLenum pname1,GLint param1)
{
	static PFNGLMULTITEXPARAMETERIEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXPARAMETERIEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexParameteriEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,pname1,param1);
}
typedef void (*PFNGLMULTITEXPARAMETERIVEXTPROC_HPP)(GLenum,GLenum,GLenum,const GLint *);
static inline void MultiTexParameterivEXT(GLenum texunit1,GLenum target1,GLenum pname1,const GLint * params1)
{
	static PFNGLMULTITEXPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexParameterivEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,pname1,params1);
}
typedef void (*PFNGLMULTITEXRENDERBUFFEREXTPROC_HPP)(GLenum,GLenum,GLuint);
static inline void MultiTexRenderbufferEXT(GLenum texunit1,GLenum target1,GLuint renderbuffer1)
{
	static PFNGLMULTITEXRENDERBUFFEREXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXRENDERBUFFEREXTPROC_HPP>(_impl::_get_proc_address("glMultiTexRenderbufferEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,renderbuffer1);
}
typedef void (*PFNGLMULTITEXSUBIMAGE1DEXTPROC_HPP)(GLenum,GLenum,GLint,GLint,GLsizei,GLenum,GLenum,const void *);
static inline void MultiTexSubImage1DEXT(GLenum texunit1,GLenum target1,GLint level1,GLint xoffset1,GLsizei width1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLMULTITEXSUBIMAGE1DEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXSUBIMAGE1DEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexSubImage1DEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,xoffset1,width1,format1,type1,pixels1);
}
typedef void (*PFNGLMULTITEXSUBIMAGE2DEXTPROC_HPP)(GLenum,GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,const void *);
static inline void MultiTexSubImage2DEXT(GLenum texunit1,GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLsizei width1,GLsizei height1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLMULTITEXSUBIMAGE2DEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXSUBIMAGE2DEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexSubImage2DEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,xoffset1,yoffset1,width1,height1,format1,type1,pixels1);
}
typedef void (*PFNGLMULTITEXSUBIMAGE3DEXTPROC_HPP)(GLenum,GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLenum,const void *);
static inline void MultiTexSubImage3DEXT(GLenum texunit1,GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLsizei width1,GLsizei height1,GLsizei depth1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLMULTITEXSUBIMAGE3DEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXSUBIMAGE3DEXTPROC_HPP>(_impl::_get_proc_address("glMultiTexSubImage3DEXT","GL_EXT_direct_state_access"));
	 fn(texunit1,target1,level1,xoffset1,yoffset1,zoffset1,width1,height1,depth1,format1,type1,pixels1);
}
typedef void (*PFNGLNAMEDBUFFERDATAEXTPROC_HPP)(GLuint,GLsizeiptr,const void *,GLenum);
static inline void NamedBufferDataEXT(GLuint buffer1,GLsizeiptr size1,const void * data1,GLenum usage1)
{
	static PFNGLNAMEDBUFFERDATAEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDBUFFERDATAEXTPROC_HPP>(_impl::_get_proc_address("glNamedBufferDataEXT","GL_EXT_direct_state_access"));
	 fn(buffer1,size1,data1,usage1);
}
typedef void (*PFNGLNAMEDBUFFERSTORAGEEXTPROC_HPP)(GLuint,GLsizeiptr,const void *,GLbitfield);
static inline void NamedBufferStorageEXT(GLuint buffer1,GLsizeiptr size1,const void * data1,GLbitfield flags1)
{
	static PFNGLNAMEDBUFFERSTORAGEEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDBUFFERSTORAGEEXTPROC_HPP>(_impl::_get_proc_address("glNamedBufferStorageEXT","GL_EXT_direct_state_access"));
	 fn(buffer1,size1,data1,flags1);
}
typedef void (*PFNGLNAMEDBUFFERSUBDATAEXTPROC_HPP)(GLuint,GLintptr,GLsizeiptr,const void *);
static inline void NamedBufferSubDataEXT(GLuint buffer1,GLintptr offset1,GLsizeiptr size1,const void * data1)
{
	static PFNGLNAMEDBUFFERSUBDATAEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDBUFFERSUBDATAEXTPROC_HPP>(_impl::_get_proc_address("glNamedBufferSubDataEXT","GL_EXT_direct_state_access"));
	 fn(buffer1,offset1,size1,data1);
}
typedef void (*PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC_HPP)(GLuint,GLuint,GLintptr,GLintptr,GLsizeiptr);
static inline void NamedCopyBufferSubDataEXT(GLuint readBuffer1,GLuint writeBuffer1,GLintptr readOffset1,GLintptr writeOffset1,GLsizeiptr size1)
{
	static PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC_HPP>(_impl::_get_proc_address("glNamedCopyBufferSubDataEXT","GL_EXT_direct_state_access"));
	 fn(readBuffer1,writeBuffer1,readOffset1,writeOffset1,size1);
}
typedef void (*PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC_HPP)(GLuint,GLenum,GLint);
static inline void NamedFramebufferParameteriEXT(GLuint framebuffer1,GLenum pname1,GLint param1)
{
	static PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC_HPP>(_impl::_get_proc_address("glNamedFramebufferParameteriEXT","GL_EXT_direct_state_access"));
	 fn(framebuffer1,pname1,param1);
}
typedef void (*PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC_HPP)(GLuint,GLenum,GLenum,GLuint);
static inline void NamedFramebufferRenderbufferEXT(GLuint framebuffer1,GLenum attachment1,GLenum renderbuffertarget1,GLuint renderbuffer1)
{
	static PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC_HPP>(_impl::_get_proc_address("glNamedFramebufferRenderbufferEXT","GL_EXT_direct_state_access"));
	 fn(framebuffer1,attachment1,renderbuffertarget1,renderbuffer1);
}
typedef void (*PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC_HPP)(GLuint,GLenum,GLenum,GLuint,GLint);
static inline void NamedFramebufferTexture1DEXT(GLuint framebuffer1,GLenum attachment1,GLenum textarget1,GLuint texture1,GLint level1)
{
	static PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC_HPP>(_impl::_get_proc_address("glNamedFramebufferTexture1DEXT","GL_EXT_direct_state_access"));
	 fn(framebuffer1,attachment1,textarget1,texture1,level1);
}
typedef void (*PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC_HPP)(GLuint,GLenum,GLenum,GLuint,GLint);
static inline void NamedFramebufferTexture2DEXT(GLuint framebuffer1,GLenum attachment1,GLenum textarget1,GLuint texture1,GLint level1)
{
	static PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC_HPP>(_impl::_get_proc_address("glNamedFramebufferTexture2DEXT","GL_EXT_direct_state_access"));
	 fn(framebuffer1,attachment1,textarget1,texture1,level1);
}
typedef void (*PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC_HPP)(GLuint,GLenum,GLenum,GLuint,GLint,GLint);
static inline void NamedFramebufferTexture3DEXT(GLuint framebuffer1,GLenum attachment1,GLenum textarget1,GLuint texture1,GLint level1,GLint zoffset1)
{
	static PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC_HPP>(_impl::_get_proc_address("glNamedFramebufferTexture3DEXT","GL_EXT_direct_state_access"));
	 fn(framebuffer1,attachment1,textarget1,texture1,level1,zoffset1);
}
typedef void (*PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC_HPP)(GLuint,GLenum,GLuint,GLint);
static inline void NamedFramebufferTextureEXT(GLuint framebuffer1,GLenum attachment1,GLuint texture1,GLint level1)
{
	static PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC_HPP>(_impl::_get_proc_address("glNamedFramebufferTextureEXT","GL_EXT_direct_state_access"));
	 fn(framebuffer1,attachment1,texture1,level1);
}
typedef void (*PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC_HPP)(GLuint,GLenum,GLuint,GLint,GLenum);
static inline void NamedFramebufferTextureFaceEXT(GLuint framebuffer1,GLenum attachment1,GLuint texture1,GLint level1,GLenum face1)
{
	static PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC_HPP>(_impl::_get_proc_address("glNamedFramebufferTextureFaceEXT","GL_EXT_direct_state_access"));
	 fn(framebuffer1,attachment1,texture1,level1,face1);
}
typedef void (*PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC_HPP)(GLuint,GLenum,GLuint,GLint,GLint);
static inline void NamedFramebufferTextureLayerEXT(GLuint framebuffer1,GLenum attachment1,GLuint texture1,GLint level1,GLint layer1)
{
	static PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC_HPP>(_impl::_get_proc_address("glNamedFramebufferTextureLayerEXT","GL_EXT_direct_state_access"));
	 fn(framebuffer1,attachment1,texture1,level1,layer1);
}
typedef void (*PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC_HPP)(GLuint,GLenum,GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void NamedProgramLocalParameter4dEXT(GLuint program1,GLenum target1,GLuint index1,GLdouble x1,GLdouble y1,GLdouble z1,GLdouble w1)
{
	static PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC_HPP>(_impl::_get_proc_address("glNamedProgramLocalParameter4dEXT","GL_EXT_direct_state_access"));
	 fn(program1,target1,index1,x1,y1,z1,w1);
}
typedef void (*PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC_HPP)(GLuint,GLenum,GLuint,const GLdouble *);
static inline void NamedProgramLocalParameter4dvEXT(GLuint program1,GLenum target1,GLuint index1,const GLdouble * params1)
{
	static PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC_HPP>(_impl::_get_proc_address("glNamedProgramLocalParameter4dvEXT","GL_EXT_direct_state_access"));
	 fn(program1,target1,index1,params1);
}
typedef void (*PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC_HPP)(GLuint,GLenum,GLuint,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void NamedProgramLocalParameter4fEXT(GLuint program1,GLenum target1,GLuint index1,GLfloat x1,GLfloat y1,GLfloat z1,GLfloat w1)
{
	static PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC_HPP>(_impl::_get_proc_address("glNamedProgramLocalParameter4fEXT","GL_EXT_direct_state_access"));
	 fn(program1,target1,index1,x1,y1,z1,w1);
}
typedef void (*PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC_HPP)(GLuint,GLenum,GLuint,const GLfloat *);
static inline void NamedProgramLocalParameter4fvEXT(GLuint program1,GLenum target1,GLuint index1,const GLfloat * params1)
{
	static PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC_HPP>(_impl::_get_proc_address("glNamedProgramLocalParameter4fvEXT","GL_EXT_direct_state_access"));
	 fn(program1,target1,index1,params1);
}
typedef void (*PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC_HPP)(GLuint,GLenum,GLuint,GLint,GLint,GLint,GLint);
static inline void NamedProgramLocalParameterI4iEXT(GLuint program1,GLenum target1,GLuint index1,GLint x1,GLint y1,GLint z1,GLint w1)
{
	static PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC_HPP>(_impl::_get_proc_address("glNamedProgramLocalParameterI4iEXT","GL_EXT_direct_state_access"));
	 fn(program1,target1,index1,x1,y1,z1,w1);
}
typedef void (*PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC_HPP)(GLuint,GLenum,GLuint,const GLint *);
static inline void NamedProgramLocalParameterI4ivEXT(GLuint program1,GLenum target1,GLuint index1,const GLint * params1)
{
	static PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC_HPP>(_impl::_get_proc_address("glNamedProgramLocalParameterI4ivEXT","GL_EXT_direct_state_access"));
	 fn(program1,target1,index1,params1);
}
typedef void (*PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC_HPP)(GLuint,GLenum,GLuint,GLuint,GLuint,GLuint,GLuint);
static inline void NamedProgramLocalParameterI4uiEXT(GLuint program1,GLenum target1,GLuint index1,GLuint x1,GLuint y1,GLuint z1,GLuint w1)
{
	static PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC_HPP>(_impl::_get_proc_address("glNamedProgramLocalParameterI4uiEXT","GL_EXT_direct_state_access"));
	 fn(program1,target1,index1,x1,y1,z1,w1);
}
typedef void (*PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC_HPP)(GLuint,GLenum,GLuint,const GLuint *);
static inline void NamedProgramLocalParameterI4uivEXT(GLuint program1,GLenum target1,GLuint index1,const GLuint * params1)
{
	static PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC_HPP>(_impl::_get_proc_address("glNamedProgramLocalParameterI4uivEXT","GL_EXT_direct_state_access"));
	 fn(program1,target1,index1,params1);
}
typedef void (*PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC_HPP)(GLuint,GLenum,GLuint,GLsizei,const GLfloat *);
static inline void NamedProgramLocalParameters4fvEXT(GLuint program1,GLenum target1,GLuint index1,GLsizei count1,const GLfloat * params1)
{
	static PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC_HPP>(_impl::_get_proc_address("glNamedProgramLocalParameters4fvEXT","GL_EXT_direct_state_access"));
	 fn(program1,target1,index1,count1,params1);
}
typedef void (*PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC_HPP)(GLuint,GLenum,GLuint,GLsizei,const GLint *);
static inline void NamedProgramLocalParametersI4ivEXT(GLuint program1,GLenum target1,GLuint index1,GLsizei count1,const GLint * params1)
{
	static PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC_HPP>(_impl::_get_proc_address("glNamedProgramLocalParametersI4ivEXT","GL_EXT_direct_state_access"));
	 fn(program1,target1,index1,count1,params1);
}
typedef void (*PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC_HPP)(GLuint,GLenum,GLuint,GLsizei,const GLuint *);
static inline void NamedProgramLocalParametersI4uivEXT(GLuint program1,GLenum target1,GLuint index1,GLsizei count1,const GLuint * params1)
{
	static PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC_HPP>(_impl::_get_proc_address("glNamedProgramLocalParametersI4uivEXT","GL_EXT_direct_state_access"));
	 fn(program1,target1,index1,count1,params1);
}
typedef void (*PFNGLNAMEDPROGRAMSTRINGEXTPROC_HPP)(GLuint,GLenum,GLenum,GLsizei,const void *);
static inline void NamedProgramStringEXT(GLuint program1,GLenum target1,GLenum format1,GLsizei len1,const void * string1)
{
	static PFNGLNAMEDPROGRAMSTRINGEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDPROGRAMSTRINGEXTPROC_HPP>(_impl::_get_proc_address("glNamedProgramStringEXT","GL_EXT_direct_state_access"));
	 fn(program1,target1,format1,len1,string1);
}
typedef void (*PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC_HPP)(GLuint,GLenum,GLsizei,GLsizei);
static inline void NamedRenderbufferStorageEXT(GLuint renderbuffer1,GLenum internalformat1,GLsizei width1,GLsizei height1)
{
	static PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC_HPP>(_impl::_get_proc_address("glNamedRenderbufferStorageEXT","GL_EXT_direct_state_access"));
	 fn(renderbuffer1,internalformat1,width1,height1);
}
typedef void (*PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC_HPP)(GLuint,GLsizei,GLsizei,GLenum,GLsizei,GLsizei);
static inline void NamedRenderbufferStorageMultisampleCoverageEXT(GLuint renderbuffer1,GLsizei coverageSamples1,GLsizei colorSamples1,GLenum internalformat1,GLsizei width1,GLsizei height1)
{
	static PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC_HPP>(_impl::_get_proc_address("glNamedRenderbufferStorageMultisampleCoverageEXT","GL_EXT_direct_state_access"));
	 fn(renderbuffer1,coverageSamples1,colorSamples1,internalformat1,width1,height1);
}
typedef void (*PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC_HPP)(GLuint,GLsizei,GLenum,GLsizei,GLsizei);
static inline void NamedRenderbufferStorageMultisampleEXT(GLuint renderbuffer1,GLsizei samples1,GLenum internalformat1,GLsizei width1,GLsizei height1)
{
	static PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC_HPP fn=reinterpret_cast<PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC_HPP>(_impl::_get_proc_address("glNamedRenderbufferStorageMultisampleEXT","GL_EXT_direct_state_access"));
	 fn(renderbuffer1,samples1,internalformat1,width1,height1);
}
typedef void (*PFNGLPROGRAMUNIFORM1DEXTPROC_HPP)(GLuint,GLint,GLdouble);
static inline void ProgramUniform1dEXT(GLuint program1,GLint location1,GLdouble x1)
{
	static PFNGLPROGRAMUNIFORM1DEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1DEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform1dEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,x1);
}
typedef void (*PFNGLPROGRAMUNIFORM1DVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLdouble *);
static inline void ProgramUniform1dvEXT(GLuint program1,GLint location1,GLsizei count1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORM1DVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1DVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform1dvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM1FEXTPROC_HPP)(GLuint,GLint,GLfloat);
static inline void ProgramUniform1fEXT(GLuint program1,GLint location1,GLfloat v01)
{
	static PFNGLPROGRAMUNIFORM1FEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1FEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform1fEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,v01);
}
typedef void (*PFNGLPROGRAMUNIFORM1FVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLfloat *);
static inline void ProgramUniform1fvEXT(GLuint program1,GLint location1,GLsizei count1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORM1FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform1fvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM1IEXTPROC_HPP)(GLuint,GLint,GLint);
static inline void ProgramUniform1iEXT(GLuint program1,GLint location1,GLint v01)
{
	static PFNGLPROGRAMUNIFORM1IEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1IEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform1iEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,v01);
}
typedef void (*PFNGLPROGRAMUNIFORM1IVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLint *);
static inline void ProgramUniform1ivEXT(GLuint program1,GLint location1,GLsizei count1,const GLint * value1)
{
	static PFNGLPROGRAMUNIFORM1IVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1IVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform1ivEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM1UIEXTPROC_HPP)(GLuint,GLint,GLuint);
static inline void ProgramUniform1uiEXT(GLuint program1,GLint location1,GLuint v01)
{
	static PFNGLPROGRAMUNIFORM1UIEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1UIEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform1uiEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,v01);
}
typedef void (*PFNGLPROGRAMUNIFORM1UIVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLuint *);
static inline void ProgramUniform1uivEXT(GLuint program1,GLint location1,GLsizei count1,const GLuint * value1)
{
	static PFNGLPROGRAMUNIFORM1UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1UIVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform1uivEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM2DEXTPROC_HPP)(GLuint,GLint,GLdouble,GLdouble);
static inline void ProgramUniform2dEXT(GLuint program1,GLint location1,GLdouble x1,GLdouble y1)
{
	static PFNGLPROGRAMUNIFORM2DEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2DEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform2dEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,x1,y1);
}
typedef void (*PFNGLPROGRAMUNIFORM2DVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLdouble *);
static inline void ProgramUniform2dvEXT(GLuint program1,GLint location1,GLsizei count1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORM2DVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2DVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform2dvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM2FEXTPROC_HPP)(GLuint,GLint,GLfloat,GLfloat);
static inline void ProgramUniform2fEXT(GLuint program1,GLint location1,GLfloat v01,GLfloat v11)
{
	static PFNGLPROGRAMUNIFORM2FEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2FEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform2fEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,v01,v11);
}
typedef void (*PFNGLPROGRAMUNIFORM2FVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLfloat *);
static inline void ProgramUniform2fvEXT(GLuint program1,GLint location1,GLsizei count1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORM2FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform2fvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM2IEXTPROC_HPP)(GLuint,GLint,GLint,GLint);
static inline void ProgramUniform2iEXT(GLuint program1,GLint location1,GLint v01,GLint v11)
{
	static PFNGLPROGRAMUNIFORM2IEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2IEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform2iEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,v01,v11);
}
typedef void (*PFNGLPROGRAMUNIFORM2IVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLint *);
static inline void ProgramUniform2ivEXT(GLuint program1,GLint location1,GLsizei count1,const GLint * value1)
{
	static PFNGLPROGRAMUNIFORM2IVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2IVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform2ivEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM2UIEXTPROC_HPP)(GLuint,GLint,GLuint,GLuint);
static inline void ProgramUniform2uiEXT(GLuint program1,GLint location1,GLuint v01,GLuint v11)
{
	static PFNGLPROGRAMUNIFORM2UIEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2UIEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform2uiEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,v01,v11);
}
typedef void (*PFNGLPROGRAMUNIFORM2UIVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLuint *);
static inline void ProgramUniform2uivEXT(GLuint program1,GLint location1,GLsizei count1,const GLuint * value1)
{
	static PFNGLPROGRAMUNIFORM2UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2UIVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform2uivEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM3DEXTPROC_HPP)(GLuint,GLint,GLdouble,GLdouble,GLdouble);
static inline void ProgramUniform3dEXT(GLuint program1,GLint location1,GLdouble x1,GLdouble y1,GLdouble z1)
{
	static PFNGLPROGRAMUNIFORM3DEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3DEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform3dEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,x1,y1,z1);
}
typedef void (*PFNGLPROGRAMUNIFORM3DVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLdouble *);
static inline void ProgramUniform3dvEXT(GLuint program1,GLint location1,GLsizei count1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORM3DVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3DVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform3dvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM3FEXTPROC_HPP)(GLuint,GLint,GLfloat,GLfloat,GLfloat);
static inline void ProgramUniform3fEXT(GLuint program1,GLint location1,GLfloat v01,GLfloat v11,GLfloat v21)
{
	static PFNGLPROGRAMUNIFORM3FEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3FEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform3fEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,v01,v11,v21);
}
typedef void (*PFNGLPROGRAMUNIFORM3FVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLfloat *);
static inline void ProgramUniform3fvEXT(GLuint program1,GLint location1,GLsizei count1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORM3FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform3fvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM3IEXTPROC_HPP)(GLuint,GLint,GLint,GLint,GLint);
static inline void ProgramUniform3iEXT(GLuint program1,GLint location1,GLint v01,GLint v11,GLint v21)
{
	static PFNGLPROGRAMUNIFORM3IEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3IEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform3iEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,v01,v11,v21);
}
typedef void (*PFNGLPROGRAMUNIFORM3IVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLint *);
static inline void ProgramUniform3ivEXT(GLuint program1,GLint location1,GLsizei count1,const GLint * value1)
{
	static PFNGLPROGRAMUNIFORM3IVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3IVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform3ivEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM3UIEXTPROC_HPP)(GLuint,GLint,GLuint,GLuint,GLuint);
static inline void ProgramUniform3uiEXT(GLuint program1,GLint location1,GLuint v01,GLuint v11,GLuint v21)
{
	static PFNGLPROGRAMUNIFORM3UIEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3UIEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform3uiEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,v01,v11,v21);
}
typedef void (*PFNGLPROGRAMUNIFORM3UIVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLuint *);
static inline void ProgramUniform3uivEXT(GLuint program1,GLint location1,GLsizei count1,const GLuint * value1)
{
	static PFNGLPROGRAMUNIFORM3UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3UIVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform3uivEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM4DEXTPROC_HPP)(GLuint,GLint,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void ProgramUniform4dEXT(GLuint program1,GLint location1,GLdouble x1,GLdouble y1,GLdouble z1,GLdouble w1)
{
	static PFNGLPROGRAMUNIFORM4DEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4DEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform4dEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMUNIFORM4DVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLdouble *);
static inline void ProgramUniform4dvEXT(GLuint program1,GLint location1,GLsizei count1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORM4DVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4DVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform4dvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM4FEXTPROC_HPP)(GLuint,GLint,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void ProgramUniform4fEXT(GLuint program1,GLint location1,GLfloat v01,GLfloat v11,GLfloat v21,GLfloat v31)
{
	static PFNGLPROGRAMUNIFORM4FEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4FEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform4fEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,v01,v11,v21,v31);
}
typedef void (*PFNGLPROGRAMUNIFORM4FVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLfloat *);
static inline void ProgramUniform4fvEXT(GLuint program1,GLint location1,GLsizei count1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORM4FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform4fvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM4IEXTPROC_HPP)(GLuint,GLint,GLint,GLint,GLint,GLint);
static inline void ProgramUniform4iEXT(GLuint program1,GLint location1,GLint v01,GLint v11,GLint v21,GLint v31)
{
	static PFNGLPROGRAMUNIFORM4IEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4IEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform4iEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,v01,v11,v21,v31);
}
typedef void (*PFNGLPROGRAMUNIFORM4IVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLint *);
static inline void ProgramUniform4ivEXT(GLuint program1,GLint location1,GLsizei count1,const GLint * value1)
{
	static PFNGLPROGRAMUNIFORM4IVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4IVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform4ivEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM4UIEXTPROC_HPP)(GLuint,GLint,GLuint,GLuint,GLuint,GLuint);
static inline void ProgramUniform4uiEXT(GLuint program1,GLint location1,GLuint v01,GLuint v11,GLuint v21,GLuint v31)
{
	static PFNGLPROGRAMUNIFORM4UIEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4UIEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform4uiEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,v01,v11,v21,v31);
}
typedef void (*PFNGLPROGRAMUNIFORM4UIVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLuint *);
static inline void ProgramUniform4uivEXT(GLuint program1,GLint location1,GLsizei count1,const GLuint * value1)
{
	static PFNGLPROGRAMUNIFORM4UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4UIVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform4uivEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLdouble *);
static inline void ProgramUniformMatrix2dvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix2dvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix2fvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix2fvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLdouble *);
static inline void ProgramUniformMatrix2x3dvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix2x3dvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix2x3fvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix2x3fvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLdouble *);
static inline void ProgramUniformMatrix2x4dvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix2x4dvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix2x4fvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix2x4fvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLdouble *);
static inline void ProgramUniformMatrix3dvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix3dvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix3fvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix3fvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLdouble *);
static inline void ProgramUniformMatrix3x2dvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix3x2dvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix3x2fvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix3x2fvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLdouble *);
static inline void ProgramUniformMatrix3x4dvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix3x4dvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix3x4fvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix3x4fvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLdouble *);
static inline void ProgramUniformMatrix4dvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix4dvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix4fvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix4fvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLdouble *);
static inline void ProgramUniformMatrix4x2dvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix4x2dvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix4x2fvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix4x2fvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLdouble *);
static inline void ProgramUniformMatrix4x3dvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLdouble * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix4x3dvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix4x3fvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix4x3fvEXT","GL_EXT_direct_state_access"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC_HPP)(GLbitfield);
static inline void PushClientAttribDefaultEXT(GLbitfield mask1)
{
	static PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC_HPP fn=reinterpret_cast<PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC_HPP>(_impl::_get_proc_address("glPushClientAttribDefaultEXT","GL_EXT_direct_state_access"));
	 fn(mask1);
}
typedef void (*PFNGLTEXTUREBUFFEREXTPROC_HPP)(GLuint,GLenum,GLenum,GLuint);
static inline void TextureBufferEXT(GLuint texture1,GLenum target1,GLenum internalformat1,GLuint buffer1)
{
	static PFNGLTEXTUREBUFFEREXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREBUFFEREXTPROC_HPP>(_impl::_get_proc_address("glTextureBufferEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,internalformat1,buffer1);
}
typedef void (*PFNGLTEXTUREBUFFERRANGEEXTPROC_HPP)(GLuint,GLenum,GLenum,GLuint,GLintptr,GLsizeiptr);
static inline void TextureBufferRangeEXT(GLuint texture1,GLenum target1,GLenum internalformat1,GLuint buffer1,GLintptr offset1,GLsizeiptr size1)
{
	static PFNGLTEXTUREBUFFERRANGEEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREBUFFERRANGEEXTPROC_HPP>(_impl::_get_proc_address("glTextureBufferRangeEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,internalformat1,buffer1,offset1,size1);
}
typedef void (*PFNGLTEXTUREIMAGE1DEXTPROC_HPP)(GLuint,GLenum,GLint,GLint,GLsizei,GLint,GLenum,GLenum,const void *);
static inline void TextureImage1DEXT(GLuint texture1,GLenum target1,GLint level1,GLint internalformat1,GLsizei width1,GLint border1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLTEXTUREIMAGE1DEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREIMAGE1DEXTPROC_HPP>(_impl::_get_proc_address("glTextureImage1DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,internalformat1,width1,border1,format1,type1,pixels1);
}
typedef void (*PFNGLTEXTUREIMAGE2DEXTPROC_HPP)(GLuint,GLenum,GLint,GLint,GLsizei,GLsizei,GLint,GLenum,GLenum,const void *);
static inline void TextureImage2DEXT(GLuint texture1,GLenum target1,GLint level1,GLint internalformat1,GLsizei width1,GLsizei height1,GLint border1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLTEXTUREIMAGE2DEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREIMAGE2DEXTPROC_HPP>(_impl::_get_proc_address("glTextureImage2DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,internalformat1,width1,height1,border1,format1,type1,pixels1);
}
typedef void (*PFNGLTEXTUREIMAGE3DEXTPROC_HPP)(GLuint,GLenum,GLint,GLint,GLsizei,GLsizei,GLsizei,GLint,GLenum,GLenum,const void *);
static inline void TextureImage3DEXT(GLuint texture1,GLenum target1,GLint level1,GLint internalformat1,GLsizei width1,GLsizei height1,GLsizei depth1,GLint border1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLTEXTUREIMAGE3DEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREIMAGE3DEXTPROC_HPP>(_impl::_get_proc_address("glTextureImage3DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,internalformat1,width1,height1,depth1,border1,format1,type1,pixels1);
}
typedef void (*PFNGLTEXTUREPAGECOMMITMENTEXTPROC_HPP)(GLuint,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLboolean);
static inline void TexturePageCommitmentEXT(GLuint texture1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLsizei width1,GLsizei height1,GLsizei depth1,GLboolean resident1)
{
	static PFNGLTEXTUREPAGECOMMITMENTEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREPAGECOMMITMENTEXTPROC_HPP>(_impl::_get_proc_address("glTexturePageCommitmentEXT","GL_EXT_direct_state_access"));
	 fn(texture1,level1,xoffset1,yoffset1,zoffset1,width1,height1,depth1,resident1);
}
typedef void (*PFNGLTEXTUREPARAMETERIIVEXTPROC_HPP)(GLuint,GLenum,GLenum,const GLint *);
static inline void TextureParameterIivEXT(GLuint texture1,GLenum target1,GLenum pname1,const GLint * params1)
{
	static PFNGLTEXTUREPARAMETERIIVEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREPARAMETERIIVEXTPROC_HPP>(_impl::_get_proc_address("glTextureParameterIivEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,pname1,params1);
}
typedef void (*PFNGLTEXTUREPARAMETERIUIVEXTPROC_HPP)(GLuint,GLenum,GLenum,const GLuint *);
static inline void TextureParameterIuivEXT(GLuint texture1,GLenum target1,GLenum pname1,const GLuint * params1)
{
	static PFNGLTEXTUREPARAMETERIUIVEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREPARAMETERIUIVEXTPROC_HPP>(_impl::_get_proc_address("glTextureParameterIuivEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,pname1,params1);
}
typedef void (*PFNGLTEXTUREPARAMETERFEXTPROC_HPP)(GLuint,GLenum,GLenum,GLfloat);
static inline void TextureParameterfEXT(GLuint texture1,GLenum target1,GLenum pname1,GLfloat param1)
{
	static PFNGLTEXTUREPARAMETERFEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREPARAMETERFEXTPROC_HPP>(_impl::_get_proc_address("glTextureParameterfEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,pname1,param1);
}
typedef void (*PFNGLTEXTUREPARAMETERFVEXTPROC_HPP)(GLuint,GLenum,GLenum,const GLfloat *);
static inline void TextureParameterfvEXT(GLuint texture1,GLenum target1,GLenum pname1,const GLfloat * params1)
{
	static PFNGLTEXTUREPARAMETERFVEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREPARAMETERFVEXTPROC_HPP>(_impl::_get_proc_address("glTextureParameterfvEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,pname1,params1);
}
typedef void (*PFNGLTEXTUREPARAMETERIEXTPROC_HPP)(GLuint,GLenum,GLenum,GLint);
static inline void TextureParameteriEXT(GLuint texture1,GLenum target1,GLenum pname1,GLint param1)
{
	static PFNGLTEXTUREPARAMETERIEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREPARAMETERIEXTPROC_HPP>(_impl::_get_proc_address("glTextureParameteriEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,pname1,param1);
}
typedef void (*PFNGLTEXTUREPARAMETERIVEXTPROC_HPP)(GLuint,GLenum,GLenum,const GLint *);
static inline void TextureParameterivEXT(GLuint texture1,GLenum target1,GLenum pname1,const GLint * params1)
{
	static PFNGLTEXTUREPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glTextureParameterivEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,pname1,params1);
}
typedef void (*PFNGLTEXTURERENDERBUFFEREXTPROC_HPP)(GLuint,GLenum,GLuint);
static inline void TextureRenderbufferEXT(GLuint texture1,GLenum target1,GLuint renderbuffer1)
{
	static PFNGLTEXTURERENDERBUFFEREXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTURERENDERBUFFEREXTPROC_HPP>(_impl::_get_proc_address("glTextureRenderbufferEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,renderbuffer1);
}
typedef void (*PFNGLTEXTURESTORAGE1DEXTPROC_HPP)(GLuint,GLenum,GLsizei,GLenum,GLsizei);
static inline void TextureStorage1DEXT(GLuint texture1,GLenum target1,GLsizei levels1,GLenum internalformat1,GLsizei width1)
{
	static PFNGLTEXTURESTORAGE1DEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTURESTORAGE1DEXTPROC_HPP>(_impl::_get_proc_address("glTextureStorage1DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,levels1,internalformat1,width1);
}
typedef void (*PFNGLTEXTURESTORAGE2DEXTPROC_HPP)(GLuint,GLenum,GLsizei,GLenum,GLsizei,GLsizei);
static inline void TextureStorage2DEXT(GLuint texture1,GLenum target1,GLsizei levels1,GLenum internalformat1,GLsizei width1,GLsizei height1)
{
	static PFNGLTEXTURESTORAGE2DEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTURESTORAGE2DEXTPROC_HPP>(_impl::_get_proc_address("glTextureStorage2DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,levels1,internalformat1,width1,height1);
}
typedef void (*PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC_HPP)(GLuint,GLenum,GLsizei,GLenum,GLsizei,GLsizei,GLboolean);
static inline void TextureStorage2DMultisampleEXT(GLuint texture1,GLenum target1,GLsizei samples1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLboolean fixedsamplelocations1)
{
	static PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC_HPP>(_impl::_get_proc_address("glTextureStorage2DMultisampleEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,samples1,internalformat1,width1,height1,fixedsamplelocations1);
}
typedef void (*PFNGLTEXTURESTORAGE3DEXTPROC_HPP)(GLuint,GLenum,GLsizei,GLenum,GLsizei,GLsizei,GLsizei);
static inline void TextureStorage3DEXT(GLuint texture1,GLenum target1,GLsizei levels1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLsizei depth1)
{
	static PFNGLTEXTURESTORAGE3DEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTURESTORAGE3DEXTPROC_HPP>(_impl::_get_proc_address("glTextureStorage3DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,levels1,internalformat1,width1,height1,depth1);
}
typedef void (*PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC_HPP)(GLuint,GLenum,GLsizei,GLenum,GLsizei,GLsizei,GLsizei,GLboolean);
static inline void TextureStorage3DMultisampleEXT(GLuint texture1,GLenum target1,GLsizei samples1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLsizei depth1,GLboolean fixedsamplelocations1)
{
	static PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC_HPP>(_impl::_get_proc_address("glTextureStorage3DMultisampleEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,samples1,internalformat1,width1,height1,depth1,fixedsamplelocations1);
}
typedef void (*PFNGLTEXTURESUBIMAGE1DEXTPROC_HPP)(GLuint,GLenum,GLint,GLint,GLsizei,GLenum,GLenum,const void *);
static inline void TextureSubImage1DEXT(GLuint texture1,GLenum target1,GLint level1,GLint xoffset1,GLsizei width1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLTEXTURESUBIMAGE1DEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTURESUBIMAGE1DEXTPROC_HPP>(_impl::_get_proc_address("glTextureSubImage1DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,xoffset1,width1,format1,type1,pixels1);
}
typedef void (*PFNGLTEXTURESUBIMAGE2DEXTPROC_HPP)(GLuint,GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,const void *);
static inline void TextureSubImage2DEXT(GLuint texture1,GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLsizei width1,GLsizei height1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLTEXTURESUBIMAGE2DEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTURESUBIMAGE2DEXTPROC_HPP>(_impl::_get_proc_address("glTextureSubImage2DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,xoffset1,yoffset1,width1,height1,format1,type1,pixels1);
}
typedef void (*PFNGLTEXTURESUBIMAGE3DEXTPROC_HPP)(GLuint,GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLenum,const void *);
static inline void TextureSubImage3DEXT(GLuint texture1,GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLsizei width1,GLsizei height1,GLsizei depth1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLTEXTURESUBIMAGE3DEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTURESUBIMAGE3DEXTPROC_HPP>(_impl::_get_proc_address("glTextureSubImage3DEXT","GL_EXT_direct_state_access"));
	 fn(texture1,target1,level1,xoffset1,yoffset1,zoffset1,width1,height1,depth1,format1,type1,pixels1);
}
typedef GLboolean (*PFNGLUNMAPNAMEDBUFFEREXTPROC_HPP)(GLuint);
static inline GLboolean UnmapNamedBufferEXT(GLuint buffer1)
{
	static PFNGLUNMAPNAMEDBUFFEREXTPROC_HPP fn=reinterpret_cast<PFNGLUNMAPNAMEDBUFFEREXTPROC_HPP>(_impl::_get_proc_address("glUnmapNamedBufferEXT","GL_EXT_direct_state_access"));
	return fn(buffer1);
}
typedef void (*PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC_HPP)(GLuint,GLuint,GLuint,GLintptr,GLsizei);
static inline void VertexArrayBindVertexBufferEXT(GLuint vaobj1,GLuint bindingindex1,GLuint buffer1,GLintptr offset1,GLsizei stride1)
{
	static PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC_HPP>(_impl::_get_proc_address("glVertexArrayBindVertexBufferEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,bindingindex1,buffer1,offset1,stride1);
}
typedef void (*PFNGLVERTEXARRAYCOLOROFFSETEXTPROC_HPP)(GLuint,GLuint,GLint,GLenum,GLsizei,GLintptr);
static inline void VertexArrayColorOffsetEXT(GLuint vaobj1,GLuint buffer1,GLint size1,GLenum type1,GLsizei stride1,GLintptr offset1)
{
	static PFNGLVERTEXARRAYCOLOROFFSETEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYCOLOROFFSETEXTPROC_HPP>(_impl::_get_proc_address("glVertexArrayColorOffsetEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,buffer1,size1,type1,stride1,offset1);
}
typedef void (*PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC_HPP)(GLuint,GLuint,GLsizei,GLintptr);
static inline void VertexArrayEdgeFlagOffsetEXT(GLuint vaobj1,GLuint buffer1,GLsizei stride1,GLintptr offset1)
{
	static PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC_HPP>(_impl::_get_proc_address("glVertexArrayEdgeFlagOffsetEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,buffer1,stride1,offset1);
}
typedef void (*PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC_HPP)(GLuint,GLuint,GLenum,GLsizei,GLintptr);
static inline void VertexArrayFogCoordOffsetEXT(GLuint vaobj1,GLuint buffer1,GLenum type1,GLsizei stride1,GLintptr offset1)
{
	static PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC_HPP>(_impl::_get_proc_address("glVertexArrayFogCoordOffsetEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,buffer1,type1,stride1,offset1);
}
typedef void (*PFNGLVERTEXARRAYINDEXOFFSETEXTPROC_HPP)(GLuint,GLuint,GLenum,GLsizei,GLintptr);
static inline void VertexArrayIndexOffsetEXT(GLuint vaobj1,GLuint buffer1,GLenum type1,GLsizei stride1,GLintptr offset1)
{
	static PFNGLVERTEXARRAYINDEXOFFSETEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYINDEXOFFSETEXTPROC_HPP>(_impl::_get_proc_address("glVertexArrayIndexOffsetEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,buffer1,type1,stride1,offset1);
}
typedef void (*PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC_HPP)(GLuint,GLuint,GLenum,GLint,GLenum,GLsizei,GLintptr);
static inline void VertexArrayMultiTexCoordOffsetEXT(GLuint vaobj1,GLuint buffer1,GLenum texunit1,GLint size1,GLenum type1,GLsizei stride1,GLintptr offset1)
{
	static PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC_HPP>(_impl::_get_proc_address("glVertexArrayMultiTexCoordOffsetEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,buffer1,texunit1,size1,type1,stride1,offset1);
}
typedef void (*PFNGLVERTEXARRAYNORMALOFFSETEXTPROC_HPP)(GLuint,GLuint,GLenum,GLsizei,GLintptr);
static inline void VertexArrayNormalOffsetEXT(GLuint vaobj1,GLuint buffer1,GLenum type1,GLsizei stride1,GLintptr offset1)
{
	static PFNGLVERTEXARRAYNORMALOFFSETEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYNORMALOFFSETEXTPROC_HPP>(_impl::_get_proc_address("glVertexArrayNormalOffsetEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,buffer1,type1,stride1,offset1);
}
typedef void (*PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC_HPP)(GLuint,GLuint,GLint,GLenum,GLsizei,GLintptr);
static inline void VertexArraySecondaryColorOffsetEXT(GLuint vaobj1,GLuint buffer1,GLint size1,GLenum type1,GLsizei stride1,GLintptr offset1)
{
	static PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC_HPP>(_impl::_get_proc_address("glVertexArraySecondaryColorOffsetEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,buffer1,size1,type1,stride1,offset1);
}
typedef void (*PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC_HPP)(GLuint,GLuint,GLint,GLenum,GLsizei,GLintptr);
static inline void VertexArrayTexCoordOffsetEXT(GLuint vaobj1,GLuint buffer1,GLint size1,GLenum type1,GLsizei stride1,GLintptr offset1)
{
	static PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC_HPP>(_impl::_get_proc_address("glVertexArrayTexCoordOffsetEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,buffer1,size1,type1,stride1,offset1);
}
typedef void (*PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC_HPP)(GLuint,GLuint,GLuint);
static inline void VertexArrayVertexAttribBindingEXT(GLuint vaobj1,GLuint attribindex1,GLuint bindingindex1)
{
	static PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC_HPP>(_impl::_get_proc_address("glVertexArrayVertexAttribBindingEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,attribindex1,bindingindex1);
}
typedef void (*PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC_HPP)(GLuint,GLuint,GLuint);
static inline void VertexArrayVertexAttribDivisorEXT(GLuint vaobj1,GLuint index1,GLuint divisor1)
{
	static PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC_HPP>(_impl::_get_proc_address("glVertexArrayVertexAttribDivisorEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,index1,divisor1);
}
typedef void (*PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC_HPP)(GLuint,GLuint,GLint,GLenum,GLboolean,GLuint);
static inline void VertexArrayVertexAttribFormatEXT(GLuint vaobj1,GLuint attribindex1,GLint size1,GLenum type1,GLboolean normalized1,GLuint relativeoffset1)
{
	static PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC_HPP>(_impl::_get_proc_address("glVertexArrayVertexAttribFormatEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,attribindex1,size1,type1,normalized1,relativeoffset1);
}
typedef void (*PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC_HPP)(GLuint,GLuint,GLint,GLenum,GLuint);
static inline void VertexArrayVertexAttribIFormatEXT(GLuint vaobj1,GLuint attribindex1,GLint size1,GLenum type1,GLuint relativeoffset1)
{
	static PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC_HPP>(_impl::_get_proc_address("glVertexArrayVertexAttribIFormatEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,attribindex1,size1,type1,relativeoffset1);
}
typedef void (*PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC_HPP)(GLuint,GLuint,GLuint,GLint,GLenum,GLsizei,GLintptr);
static inline void VertexArrayVertexAttribIOffsetEXT(GLuint vaobj1,GLuint buffer1,GLuint index1,GLint size1,GLenum type1,GLsizei stride1,GLintptr offset1)
{
	static PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC_HPP>(_impl::_get_proc_address("glVertexArrayVertexAttribIOffsetEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,buffer1,index1,size1,type1,stride1,offset1);
}
typedef void (*PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC_HPP)(GLuint,GLuint,GLint,GLenum,GLuint);
static inline void VertexArrayVertexAttribLFormatEXT(GLuint vaobj1,GLuint attribindex1,GLint size1,GLenum type1,GLuint relativeoffset1)
{
	static PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC_HPP>(_impl::_get_proc_address("glVertexArrayVertexAttribLFormatEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,attribindex1,size1,type1,relativeoffset1);
}
typedef void (*PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC_HPP)(GLuint,GLuint,GLuint,GLint,GLenum,GLsizei,GLintptr);
static inline void VertexArrayVertexAttribLOffsetEXT(GLuint vaobj1,GLuint buffer1,GLuint index1,GLint size1,GLenum type1,GLsizei stride1,GLintptr offset1)
{
	static PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC_HPP>(_impl::_get_proc_address("glVertexArrayVertexAttribLOffsetEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,buffer1,index1,size1,type1,stride1,offset1);
}
typedef void (*PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC_HPP)(GLuint,GLuint,GLuint,GLint,GLenum,GLboolean,GLsizei,GLintptr);
static inline void VertexArrayVertexAttribOffsetEXT(GLuint vaobj1,GLuint buffer1,GLuint index1,GLint size1,GLenum type1,GLboolean normalized1,GLsizei stride1,GLintptr offset1)
{
	static PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC_HPP>(_impl::_get_proc_address("glVertexArrayVertexAttribOffsetEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,buffer1,index1,size1,type1,normalized1,stride1,offset1);
}
typedef void (*PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC_HPP)(GLuint,GLuint,GLuint);
static inline void VertexArrayVertexBindingDivisorEXT(GLuint vaobj1,GLuint bindingindex1,GLuint divisor1)
{
	static PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC_HPP>(_impl::_get_proc_address("glVertexArrayVertexBindingDivisorEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,bindingindex1,divisor1);
}
typedef void (*PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC_HPP)(GLuint,GLuint,GLint,GLenum,GLsizei,GLintptr);
static inline void VertexArrayVertexOffsetEXT(GLuint vaobj1,GLuint buffer1,GLint size1,GLenum type1,GLsizei stride1,GLintptr offset1)
{
	static PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC_HPP>(_impl::_get_proc_address("glVertexArrayVertexOffsetEXT","GL_EXT_direct_state_access"));
	 fn(vaobj1,buffer1,size1,type1,stride1,offset1);
}}
#endif

#ifndef GL_EXT_draw_buffers2
#define GL_EXT_draw_buffers2
extern "C" {
}
namespace gl{

typedef void (*PFNGLCOLORMASKINDEXEDEXTPROC_HPP)(GLuint,GLboolean,GLboolean,GLboolean,GLboolean);
static inline void ColorMaskIndexedEXT(GLuint index1,GLboolean r1,GLboolean g1,GLboolean b1,GLboolean a1)
{
	static PFNGLCOLORMASKINDEXEDEXTPROC_HPP fn=reinterpret_cast<PFNGLCOLORMASKINDEXEDEXTPROC_HPP>(_impl::_get_proc_address("glColorMaskIndexedEXT","GL_EXT_draw_buffers2"));
	 fn(index1,r1,g1,b1,a1);
}
typedef void (*PFNGLDISABLEINDEXEDEXTPROC_HPP)(GLenum,GLuint);
static inline void DisableIndexedEXT(GLenum target1,GLuint index1)
{
	static PFNGLDISABLEINDEXEDEXTPROC_HPP fn=reinterpret_cast<PFNGLDISABLEINDEXEDEXTPROC_HPP>(_impl::_get_proc_address("glDisableIndexedEXT","GL_EXT_draw_buffers2"));
	 fn(target1,index1);
}
typedef void (*PFNGLENABLEINDEXEDEXTPROC_HPP)(GLenum,GLuint);
static inline void EnableIndexedEXT(GLenum target1,GLuint index1)
{
	static PFNGLENABLEINDEXEDEXTPROC_HPP fn=reinterpret_cast<PFNGLENABLEINDEXEDEXTPROC_HPP>(_impl::_get_proc_address("glEnableIndexedEXT","GL_EXT_draw_buffers2"));
	 fn(target1,index1);
}
typedef void (*PFNGLGETBOOLEANINDEXEDVEXTPROC_HPP)(GLenum,GLuint,GLboolean *);
static inline void GetBooleanIndexedvEXT(GLenum target1,GLuint index1,GLboolean * data1)
{
	static PFNGLGETBOOLEANINDEXEDVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETBOOLEANINDEXEDVEXTPROC_HPP>(_impl::_get_proc_address("glGetBooleanIndexedvEXT","GL_EXT_draw_buffers2"));
	 fn(target1,index1,data1);
}
typedef void (*PFNGLGETINTEGERINDEXEDVEXTPROC_HPP)(GLenum,GLuint,GLint *);
static inline void GetIntegerIndexedvEXT(GLenum target1,GLuint index1,GLint * data1)
{
	static PFNGLGETINTEGERINDEXEDVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETINTEGERINDEXEDVEXTPROC_HPP>(_impl::_get_proc_address("glGetIntegerIndexedvEXT","GL_EXT_draw_buffers2"));
	 fn(target1,index1,data1);
}
typedef GLboolean (*PFNGLISENABLEDINDEXEDEXTPROC_HPP)(GLenum,GLuint);
static inline GLboolean IsEnabledIndexedEXT(GLenum target1,GLuint index1)
{
	static PFNGLISENABLEDINDEXEDEXTPROC_HPP fn=reinterpret_cast<PFNGLISENABLEDINDEXEDEXTPROC_HPP>(_impl::_get_proc_address("glIsEnabledIndexedEXT","GL_EXT_draw_buffers2"));
	return fn(target1,index1);
}}
#endif

#ifndef GL_EXT_draw_instanced
#define GL_EXT_draw_instanced
extern "C" {
}
namespace gl{

typedef void (*PFNGLDRAWARRAYSINSTANCEDEXTPROC_HPP)(GLenum,GLint,GLsizei,GLsizei);
static inline void DrawArraysInstancedEXT(GLenum mode1,GLint start1,GLsizei count1,GLsizei primcount1)
{
	static PFNGLDRAWARRAYSINSTANCEDEXTPROC_HPP fn=reinterpret_cast<PFNGLDRAWARRAYSINSTANCEDEXTPROC_HPP>(_impl::_get_proc_address("glDrawArraysInstancedEXT","GL_EXT_draw_instanced"));
	 fn(mode1,start1,count1,primcount1);
}
typedef void (*PFNGLDRAWELEMENTSINSTANCEDEXTPROC_HPP)(GLenum,GLsizei,GLenum,const void *,GLsizei);
static inline void DrawElementsInstancedEXT(GLenum mode1,GLsizei count1,GLenum type1,const void * indices1,GLsizei primcount1)
{
	static PFNGLDRAWELEMENTSINSTANCEDEXTPROC_HPP fn=reinterpret_cast<PFNGLDRAWELEMENTSINSTANCEDEXTPROC_HPP>(_impl::_get_proc_address("glDrawElementsInstancedEXT","GL_EXT_draw_instanced"));
	 fn(mode1,count1,type1,indices1,primcount1);
}}
#endif

#ifndef GL_EXT_draw_range_elements
#define GL_EXT_draw_range_elements
#ifndef GL_MAX_ELEMENTS_VERTICES_EXT
#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8
#endif //GL_MAX_ELEMENTS_VERTICES_EXT
#ifndef GL_MAX_ELEMENTS_INDICES_EXT
#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9
#endif //GL_MAX_ELEMENTS_INDICES_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLDRAWRANGEELEMENTSEXTPROC_HPP)(GLenum,GLuint,GLuint,GLsizei,GLenum,const void *);
static inline void DrawRangeElementsEXT(GLenum mode1,GLuint start1,GLuint end1,GLsizei count1,GLenum type1,const void * indices1)
{
	static PFNGLDRAWRANGEELEMENTSEXTPROC_HPP fn=reinterpret_cast<PFNGLDRAWRANGEELEMENTSEXTPROC_HPP>(_impl::_get_proc_address("glDrawRangeElementsEXT","GL_EXT_draw_range_elements"));
	 fn(mode1,start1,end1,count1,type1,indices1);
}}
#endif

#ifndef GL_EXT_fog_coord
#define GL_EXT_fog_coord
#ifndef GL_FOG_COORDINATE_SOURCE_EXT
#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450
#endif //GL_FOG_COORDINATE_SOURCE_EXT
#ifndef GL_FOG_COORDINATE_EXT
#define GL_FOG_COORDINATE_EXT 0x8451
#endif //GL_FOG_COORDINATE_EXT
#ifndef GL_FRAGMENT_DEPTH_EXT
#define GL_FRAGMENT_DEPTH_EXT 0x8452
#endif //GL_FRAGMENT_DEPTH_EXT
#ifndef GL_CURRENT_FOG_COORDINATE_EXT
#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453
#endif //GL_CURRENT_FOG_COORDINATE_EXT
#ifndef GL_FOG_COORDINATE_ARRAY_TYPE_EXT
#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454
#endif //GL_FOG_COORDINATE_ARRAY_TYPE_EXT
#ifndef GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455
#endif //GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
#ifndef GL_FOG_COORDINATE_ARRAY_POINTER_EXT
#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456
#endif //GL_FOG_COORDINATE_ARRAY_POINTER_EXT
#ifndef GL_FOG_COORDINATE_ARRAY_EXT
#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457
#endif //GL_FOG_COORDINATE_ARRAY_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLFOGCOORDPOINTEREXTPROC_HPP)(GLenum,GLsizei,const void *);
static inline void FogCoordPointerEXT(GLenum type1,GLsizei stride1,const void * pointer1)
{
	static PFNGLFOGCOORDPOINTEREXTPROC_HPP fn=reinterpret_cast<PFNGLFOGCOORDPOINTEREXTPROC_HPP>(_impl::_get_proc_address("glFogCoordPointerEXT","GL_EXT_fog_coord"));
	 fn(type1,stride1,pointer1);
}
typedef void (*PFNGLFOGCOORDDEXTPROC_HPP)(GLdouble);
static inline void FogCoorddEXT(GLdouble coord1)
{
	static PFNGLFOGCOORDDEXTPROC_HPP fn=reinterpret_cast<PFNGLFOGCOORDDEXTPROC_HPP>(_impl::_get_proc_address("glFogCoorddEXT","GL_EXT_fog_coord"));
	 fn(coord1);
}
typedef void (*PFNGLFOGCOORDDVEXTPROC_HPP)(const GLdouble *);
static inline void FogCoorddvEXT(const GLdouble * coord1)
{
	static PFNGLFOGCOORDDVEXTPROC_HPP fn=reinterpret_cast<PFNGLFOGCOORDDVEXTPROC_HPP>(_impl::_get_proc_address("glFogCoorddvEXT","GL_EXT_fog_coord"));
	 fn(coord1);
}
typedef void (*PFNGLFOGCOORDFEXTPROC_HPP)(GLfloat);
static inline void FogCoordfEXT(GLfloat coord1)
{
	static PFNGLFOGCOORDFEXTPROC_HPP fn=reinterpret_cast<PFNGLFOGCOORDFEXTPROC_HPP>(_impl::_get_proc_address("glFogCoordfEXT","GL_EXT_fog_coord"));
	 fn(coord1);
}
typedef void (*PFNGLFOGCOORDFVEXTPROC_HPP)(const GLfloat *);
static inline void FogCoordfvEXT(const GLfloat * coord1)
{
	static PFNGLFOGCOORDFVEXTPROC_HPP fn=reinterpret_cast<PFNGLFOGCOORDFVEXTPROC_HPP>(_impl::_get_proc_address("glFogCoordfvEXT","GL_EXT_fog_coord"));
	 fn(coord1);
}}
#endif

#ifndef GL_EXT_framebuffer_blit
#define GL_EXT_framebuffer_blit
#ifndef GL_DRAW_FRAMEBUFFER_BINDING_EXT
#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6
#endif //GL_DRAW_FRAMEBUFFER_BINDING_EXT
#ifndef GL_READ_FRAMEBUFFER_EXT
#define GL_READ_FRAMEBUFFER_EXT 0x8CA8
#endif //GL_READ_FRAMEBUFFER_EXT
#ifndef GL_DRAW_FRAMEBUFFER_EXT
#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9
#endif //GL_DRAW_FRAMEBUFFER_EXT
#ifndef GL_READ_FRAMEBUFFER_BINDING_EXT
#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA
#endif //GL_READ_FRAMEBUFFER_BINDING_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLBLITFRAMEBUFFEREXTPROC_HPP)(GLint,GLint,GLint,GLint,GLint,GLint,GLint,GLint,GLbitfield,GLenum);
static inline void BlitFramebufferEXT(GLint srcX01,GLint srcY01,GLint srcX11,GLint srcY11,GLint dstX01,GLint dstY01,GLint dstX11,GLint dstY11,GLbitfield mask1,GLenum filter1)
{
	static PFNGLBLITFRAMEBUFFEREXTPROC_HPP fn=reinterpret_cast<PFNGLBLITFRAMEBUFFEREXTPROC_HPP>(_impl::_get_proc_address("glBlitFramebufferEXT","GL_EXT_framebuffer_blit"));
	 fn(srcX01,srcY01,srcX11,srcY11,dstX01,dstY01,dstX11,dstY11,mask1,filter1);
}}
#endif

#ifndef GL_EXT_framebuffer_multisample
#define GL_EXT_framebuffer_multisample
#ifndef GL_RENDERBUFFER_SAMPLES_EXT
#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
#endif //GL_RENDERBUFFER_SAMPLES_EXT
#ifndef GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
#endif //GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT
#ifndef GL_MAX_SAMPLES_EXT
#define GL_MAX_SAMPLES_EXT 0x8D57
#endif //GL_MAX_SAMPLES_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC_HPP)(GLenum,GLsizei,GLenum,GLsizei,GLsizei);
static inline void RenderbufferStorageMultisampleEXT(GLenum target1,GLsizei samples1,GLenum internalformat1,GLsizei width1,GLsizei height1)
{
	static PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC_HPP fn=reinterpret_cast<PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC_HPP>(_impl::_get_proc_address("glRenderbufferStorageMultisampleEXT","GL_EXT_framebuffer_multisample"));
	 fn(target1,samples1,internalformat1,width1,height1);
}}
#endif

#ifndef GL_EXT_framebuffer_multisample_blit_scaled
#define GL_EXT_framebuffer_multisample_blit_scaled
#ifndef GL_SCALED_RESOLVE_FASTEST_EXT
#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA
#endif //GL_SCALED_RESOLVE_FASTEST_EXT
#ifndef GL_SCALED_RESOLVE_NICEST_EXT
#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB
#endif //GL_SCALED_RESOLVE_NICEST_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_framebuffer_object
#define GL_EXT_framebuffer_object
#ifndef GL_INVALID_FRAMEBUFFER_OPERATION_EXT
#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506
#endif //GL_INVALID_FRAMEBUFFER_OPERATION_EXT
#ifndef GL_MAX_RENDERBUFFER_SIZE_EXT
#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8
#endif //GL_MAX_RENDERBUFFER_SIZE_EXT
#ifndef GL_FRAMEBUFFER_BINDING_EXT
#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6
#endif //GL_FRAMEBUFFER_BINDING_EXT
#ifndef GL_RENDERBUFFER_BINDING_EXT
#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7
#endif //GL_RENDERBUFFER_BINDING_EXT
#ifndef GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0
#endif //GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT
#ifndef GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1
#endif //GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT
#ifndef GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2
#endif //GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT
#ifndef GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3
#endif //GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT
#ifndef GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4
#endif //GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT
#ifndef GL_FRAMEBUFFER_COMPLETE_EXT
#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
#endif //GL_FRAMEBUFFER_COMPLETE_EXT
#ifndef GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
#endif //GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT
#ifndef GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7
#endif //GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT
#ifndef GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9
#endif //GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT
#ifndef GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
#endif //GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT
#ifndef GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
#endif //GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT
#ifndef GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC
#endif //GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT
#ifndef GL_FRAMEBUFFER_UNSUPPORTED_EXT
#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD
#endif //GL_FRAMEBUFFER_UNSUPPORTED_EXT
#ifndef GL_MAX_COLOR_ATTACHMENTS_EXT
#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
#endif //GL_MAX_COLOR_ATTACHMENTS_EXT
#ifndef GL_COLOR_ATTACHMENT0_EXT
#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
#endif //GL_COLOR_ATTACHMENT0_EXT
#ifndef GL_COLOR_ATTACHMENT1_EXT
#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
#endif //GL_COLOR_ATTACHMENT1_EXT
#ifndef GL_COLOR_ATTACHMENT2_EXT
#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
#endif //GL_COLOR_ATTACHMENT2_EXT
#ifndef GL_COLOR_ATTACHMENT3_EXT
#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
#endif //GL_COLOR_ATTACHMENT3_EXT
#ifndef GL_COLOR_ATTACHMENT4_EXT
#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
#endif //GL_COLOR_ATTACHMENT4_EXT
#ifndef GL_COLOR_ATTACHMENT5_EXT
#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
#endif //GL_COLOR_ATTACHMENT5_EXT
#ifndef GL_COLOR_ATTACHMENT6_EXT
#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
#endif //GL_COLOR_ATTACHMENT6_EXT
#ifndef GL_COLOR_ATTACHMENT7_EXT
#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
#endif //GL_COLOR_ATTACHMENT7_EXT
#ifndef GL_COLOR_ATTACHMENT8_EXT
#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
#endif //GL_COLOR_ATTACHMENT8_EXT
#ifndef GL_COLOR_ATTACHMENT9_EXT
#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
#endif //GL_COLOR_ATTACHMENT9_EXT
#ifndef GL_COLOR_ATTACHMENT10_EXT
#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
#endif //GL_COLOR_ATTACHMENT10_EXT
#ifndef GL_COLOR_ATTACHMENT11_EXT
#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
#endif //GL_COLOR_ATTACHMENT11_EXT
#ifndef GL_COLOR_ATTACHMENT12_EXT
#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
#endif //GL_COLOR_ATTACHMENT12_EXT
#ifndef GL_COLOR_ATTACHMENT13_EXT
#define GL_COLOR_ATTACHMENT13_EXT 0x8CED
#endif //GL_COLOR_ATTACHMENT13_EXT
#ifndef GL_COLOR_ATTACHMENT14_EXT
#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
#endif //GL_COLOR_ATTACHMENT14_EXT
#ifndef GL_COLOR_ATTACHMENT15_EXT
#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
#endif //GL_COLOR_ATTACHMENT15_EXT
#ifndef GL_DEPTH_ATTACHMENT_EXT
#define GL_DEPTH_ATTACHMENT_EXT 0x8D00
#endif //GL_DEPTH_ATTACHMENT_EXT
#ifndef GL_STENCIL_ATTACHMENT_EXT
#define GL_STENCIL_ATTACHMENT_EXT 0x8D20
#endif //GL_STENCIL_ATTACHMENT_EXT
#ifndef GL_FRAMEBUFFER_EXT
#define GL_FRAMEBUFFER_EXT 0x8D40
#endif //GL_FRAMEBUFFER_EXT
#ifndef GL_RENDERBUFFER_EXT
#define GL_RENDERBUFFER_EXT 0x8D41
#endif //GL_RENDERBUFFER_EXT
#ifndef GL_RENDERBUFFER_WIDTH_EXT
#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42
#endif //GL_RENDERBUFFER_WIDTH_EXT
#ifndef GL_RENDERBUFFER_HEIGHT_EXT
#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43
#endif //GL_RENDERBUFFER_HEIGHT_EXT
#ifndef GL_RENDERBUFFER_INTERNAL_FORMAT_EXT
#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44
#endif //GL_RENDERBUFFER_INTERNAL_FORMAT_EXT
#ifndef GL_STENCIL_INDEX1_EXT
#define GL_STENCIL_INDEX1_EXT 0x8D46
#endif //GL_STENCIL_INDEX1_EXT
#ifndef GL_STENCIL_INDEX4_EXT
#define GL_STENCIL_INDEX4_EXT 0x8D47
#endif //GL_STENCIL_INDEX4_EXT
#ifndef GL_STENCIL_INDEX8_EXT
#define GL_STENCIL_INDEX8_EXT 0x8D48
#endif //GL_STENCIL_INDEX8_EXT
#ifndef GL_STENCIL_INDEX16_EXT
#define GL_STENCIL_INDEX16_EXT 0x8D49
#endif //GL_STENCIL_INDEX16_EXT
#ifndef GL_RENDERBUFFER_RED_SIZE_EXT
#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50
#endif //GL_RENDERBUFFER_RED_SIZE_EXT
#ifndef GL_RENDERBUFFER_GREEN_SIZE_EXT
#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51
#endif //GL_RENDERBUFFER_GREEN_SIZE_EXT
#ifndef GL_RENDERBUFFER_BLUE_SIZE_EXT
#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52
#endif //GL_RENDERBUFFER_BLUE_SIZE_EXT
#ifndef GL_RENDERBUFFER_ALPHA_SIZE_EXT
#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53
#endif //GL_RENDERBUFFER_ALPHA_SIZE_EXT
#ifndef GL_RENDERBUFFER_DEPTH_SIZE_EXT
#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54
#endif //GL_RENDERBUFFER_DEPTH_SIZE_EXT
#ifndef GL_RENDERBUFFER_STENCIL_SIZE_EXT
#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55
#endif //GL_RENDERBUFFER_STENCIL_SIZE_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDFRAMEBUFFEREXTPROC_HPP)(GLenum,GLuint);
static inline void BindFramebufferEXT(GLenum target1,GLuint framebuffer1)
{
	static PFNGLBINDFRAMEBUFFEREXTPROC_HPP fn=reinterpret_cast<PFNGLBINDFRAMEBUFFEREXTPROC_HPP>(_impl::_get_proc_address("glBindFramebufferEXT","GL_EXT_framebuffer_object"));
	 fn(target1,framebuffer1);
}
typedef void (*PFNGLBINDRENDERBUFFEREXTPROC_HPP)(GLenum,GLuint);
static inline void BindRenderbufferEXT(GLenum target1,GLuint renderbuffer1)
{
	static PFNGLBINDRENDERBUFFEREXTPROC_HPP fn=reinterpret_cast<PFNGLBINDRENDERBUFFEREXTPROC_HPP>(_impl::_get_proc_address("glBindRenderbufferEXT","GL_EXT_framebuffer_object"));
	 fn(target1,renderbuffer1);
}
typedef GLenum (*PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC_HPP)(GLenum);
static inline GLenum CheckFramebufferStatusEXT(GLenum target1)
{
	static PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC_HPP fn=reinterpret_cast<PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC_HPP>(_impl::_get_proc_address("glCheckFramebufferStatusEXT","GL_EXT_framebuffer_object"));
	return fn(target1);
}
typedef void (*PFNGLDELETEFRAMEBUFFERSEXTPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteFramebuffersEXT(GLsizei n1,const GLuint * framebuffers1)
{
	static PFNGLDELETEFRAMEBUFFERSEXTPROC_HPP fn=reinterpret_cast<PFNGLDELETEFRAMEBUFFERSEXTPROC_HPP>(_impl::_get_proc_address("glDeleteFramebuffersEXT","GL_EXT_framebuffer_object"));
	 fn(n1,framebuffers1);
}
typedef void (*PFNGLDELETERENDERBUFFERSEXTPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteRenderbuffersEXT(GLsizei n1,const GLuint * renderbuffers1)
{
	static PFNGLDELETERENDERBUFFERSEXTPROC_HPP fn=reinterpret_cast<PFNGLDELETERENDERBUFFERSEXTPROC_HPP>(_impl::_get_proc_address("glDeleteRenderbuffersEXT","GL_EXT_framebuffer_object"));
	 fn(n1,renderbuffers1);
}
typedef void (*PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC_HPP)(GLenum,GLenum,GLenum,GLuint);
static inline void FramebufferRenderbufferEXT(GLenum target1,GLenum attachment1,GLenum renderbuffertarget1,GLuint renderbuffer1)
{
	static PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC_HPP>(_impl::_get_proc_address("glFramebufferRenderbufferEXT","GL_EXT_framebuffer_object"));
	 fn(target1,attachment1,renderbuffertarget1,renderbuffer1);
}
typedef void (*PFNGLFRAMEBUFFERTEXTURE1DEXTPROC_HPP)(GLenum,GLenum,GLenum,GLuint,GLint);
static inline void FramebufferTexture1DEXT(GLenum target1,GLenum attachment1,GLenum textarget1,GLuint texture1,GLint level1)
{
	static PFNGLFRAMEBUFFERTEXTURE1DEXTPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERTEXTURE1DEXTPROC_HPP>(_impl::_get_proc_address("glFramebufferTexture1DEXT","GL_EXT_framebuffer_object"));
	 fn(target1,attachment1,textarget1,texture1,level1);
}
typedef void (*PFNGLFRAMEBUFFERTEXTURE2DEXTPROC_HPP)(GLenum,GLenum,GLenum,GLuint,GLint);
static inline void FramebufferTexture2DEXT(GLenum target1,GLenum attachment1,GLenum textarget1,GLuint texture1,GLint level1)
{
	static PFNGLFRAMEBUFFERTEXTURE2DEXTPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERTEXTURE2DEXTPROC_HPP>(_impl::_get_proc_address("glFramebufferTexture2DEXT","GL_EXT_framebuffer_object"));
	 fn(target1,attachment1,textarget1,texture1,level1);
}
typedef void (*PFNGLFRAMEBUFFERTEXTURE3DEXTPROC_HPP)(GLenum,GLenum,GLenum,GLuint,GLint,GLint);
static inline void FramebufferTexture3DEXT(GLenum target1,GLenum attachment1,GLenum textarget1,GLuint texture1,GLint level1,GLint zoffset1)
{
	static PFNGLFRAMEBUFFERTEXTURE3DEXTPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERTEXTURE3DEXTPROC_HPP>(_impl::_get_proc_address("glFramebufferTexture3DEXT","GL_EXT_framebuffer_object"));
	 fn(target1,attachment1,textarget1,texture1,level1,zoffset1);
}
typedef void (*PFNGLGENFRAMEBUFFERSEXTPROC_HPP)(GLsizei,GLuint *);
static inline void GenFramebuffersEXT(GLsizei n1,GLuint * framebuffers1)
{
	static PFNGLGENFRAMEBUFFERSEXTPROC_HPP fn=reinterpret_cast<PFNGLGENFRAMEBUFFERSEXTPROC_HPP>(_impl::_get_proc_address("glGenFramebuffersEXT","GL_EXT_framebuffer_object"));
	 fn(n1,framebuffers1);
}
typedef void (*PFNGLGENRENDERBUFFERSEXTPROC_HPP)(GLsizei,GLuint *);
static inline void GenRenderbuffersEXT(GLsizei n1,GLuint * renderbuffers1)
{
	static PFNGLGENRENDERBUFFERSEXTPROC_HPP fn=reinterpret_cast<PFNGLGENRENDERBUFFERSEXTPROC_HPP>(_impl::_get_proc_address("glGenRenderbuffersEXT","GL_EXT_framebuffer_object"));
	 fn(n1,renderbuffers1);
}
typedef void (*PFNGLGENERATEMIPMAPEXTPROC_HPP)(GLenum);
static inline void GenerateMipmapEXT(GLenum target1)
{
	static PFNGLGENERATEMIPMAPEXTPROC_HPP fn=reinterpret_cast<PFNGLGENERATEMIPMAPEXTPROC_HPP>(_impl::_get_proc_address("glGenerateMipmapEXT","GL_EXT_framebuffer_object"));
	 fn(target1);
}
typedef void (*PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC_HPP)(GLenum,GLenum,GLenum,GLint *);
static inline void GetFramebufferAttachmentParameterivEXT(GLenum target1,GLenum attachment1,GLenum pname1,GLint * params1)
{
	static PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glGetFramebufferAttachmentParameterivEXT","GL_EXT_framebuffer_object"));
	 fn(target1,attachment1,pname1,params1);
}
typedef void (*PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetRenderbufferParameterivEXT(GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glGetRenderbufferParameterivEXT","GL_EXT_framebuffer_object"));
	 fn(target1,pname1,params1);
}
typedef GLboolean (*PFNGLISFRAMEBUFFEREXTPROC_HPP)(GLuint);
static inline GLboolean IsFramebufferEXT(GLuint framebuffer1)
{
	static PFNGLISFRAMEBUFFEREXTPROC_HPP fn=reinterpret_cast<PFNGLISFRAMEBUFFEREXTPROC_HPP>(_impl::_get_proc_address("glIsFramebufferEXT","GL_EXT_framebuffer_object"));
	return fn(framebuffer1);
}
typedef GLboolean (*PFNGLISRENDERBUFFEREXTPROC_HPP)(GLuint);
static inline GLboolean IsRenderbufferEXT(GLuint renderbuffer1)
{
	static PFNGLISRENDERBUFFEREXTPROC_HPP fn=reinterpret_cast<PFNGLISRENDERBUFFEREXTPROC_HPP>(_impl::_get_proc_address("glIsRenderbufferEXT","GL_EXT_framebuffer_object"));
	return fn(renderbuffer1);
}
typedef void (*PFNGLRENDERBUFFERSTORAGEEXTPROC_HPP)(GLenum,GLenum,GLsizei,GLsizei);
static inline void RenderbufferStorageEXT(GLenum target1,GLenum internalformat1,GLsizei width1,GLsizei height1)
{
	static PFNGLRENDERBUFFERSTORAGEEXTPROC_HPP fn=reinterpret_cast<PFNGLRENDERBUFFERSTORAGEEXTPROC_HPP>(_impl::_get_proc_address("glRenderbufferStorageEXT","GL_EXT_framebuffer_object"));
	 fn(target1,internalformat1,width1,height1);
}}
#endif

#ifndef GL_EXT_framebuffer_sRGB
#define GL_EXT_framebuffer_sRGB
#ifndef GL_FRAMEBUFFER_SRGB_EXT
#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
#endif //GL_FRAMEBUFFER_SRGB_EXT
#ifndef GL_FRAMEBUFFER_SRGB_CAPABLE_EXT
#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA
#endif //GL_FRAMEBUFFER_SRGB_CAPABLE_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_geometry_shader4
#define GL_EXT_geometry_shader4
#ifndef GL_LINES_ADJACENCY_EXT
#define GL_LINES_ADJACENCY_EXT 0x000A
#endif //GL_LINES_ADJACENCY_EXT
#ifndef GL_LINE_STRIP_ADJACENCY_EXT
#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B
#endif //GL_LINE_STRIP_ADJACENCY_EXT
#ifndef GL_TRIANGLES_ADJACENCY_EXT
#define GL_TRIANGLES_ADJACENCY_EXT 0x000C
#endif //GL_TRIANGLES_ADJACENCY_EXT
#ifndef GL_TRIANGLE_STRIP_ADJACENCY_EXT
#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D
#endif //GL_TRIANGLE_STRIP_ADJACENCY_EXT
#ifndef GL_PROGRAM_POINT_SIZE_EXT
#define GL_PROGRAM_POINT_SIZE_EXT 0x8642
#endif //GL_PROGRAM_POINT_SIZE_EXT
#ifndef GL_MAX_VARYING_COMPONENTS_EXT
#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B
#endif //GL_MAX_VARYING_COMPONENTS_EXT
#ifndef GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT
#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
#endif //GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT
#ifndef GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4
#endif //GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT
#ifndef GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT
#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
#endif //GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT
#ifndef GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
#endif //GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT
#ifndef GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9
#endif //GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT
#ifndef GL_GEOMETRY_SHADER_EXT
#define GL_GEOMETRY_SHADER_EXT 0x8DD9
#endif //GL_GEOMETRY_SHADER_EXT
#ifndef GL_GEOMETRY_VERTICES_OUT_EXT
#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA
#endif //GL_GEOMETRY_VERTICES_OUT_EXT
#ifndef GL_GEOMETRY_INPUT_TYPE_EXT
#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB
#endif //GL_GEOMETRY_INPUT_TYPE_EXT
#ifndef GL_GEOMETRY_OUTPUT_TYPE_EXT
#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC
#endif //GL_GEOMETRY_OUTPUT_TYPE_EXT
#ifndef GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT
#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD
#endif //GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT
#ifndef GL_MAX_VERTEX_VARYING_COMPONENTS_EXT
#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE
#endif //GL_MAX_VERTEX_VARYING_COMPONENTS_EXT
#ifndef GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT
#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
#endif //GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT
#ifndef GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT
#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
#endif //GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT
#ifndef GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT
#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
#endif //GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLPROGRAMPARAMETERIEXTPROC_HPP)(GLuint,GLenum,GLint);
static inline void ProgramParameteriEXT(GLuint program1,GLenum pname1,GLint value1)
{
	static PFNGLPROGRAMPARAMETERIEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMPARAMETERIEXTPROC_HPP>(_impl::_get_proc_address("glProgramParameteriEXT","GL_EXT_geometry_shader4"));
	 fn(program1,pname1,value1);
}}
#endif

#ifndef GL_EXT_gpu_program_parameters
#define GL_EXT_gpu_program_parameters
extern "C" {
}
namespace gl{

typedef void (*PFNGLPROGRAMENVPARAMETERS4FVEXTPROC_HPP)(GLenum,GLuint,GLsizei,const GLfloat *);
static inline void ProgramEnvParameters4fvEXT(GLenum target1,GLuint index1,GLsizei count1,const GLfloat * params1)
{
	static PFNGLPROGRAMENVPARAMETERS4FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMENVPARAMETERS4FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramEnvParameters4fvEXT","GL_EXT_gpu_program_parameters"));
	 fn(target1,index1,count1,params1);
}
typedef void (*PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC_HPP)(GLenum,GLuint,GLsizei,const GLfloat *);
static inline void ProgramLocalParameters4fvEXT(GLenum target1,GLuint index1,GLsizei count1,const GLfloat * params1)
{
	static PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramLocalParameters4fvEXT","GL_EXT_gpu_program_parameters"));
	 fn(target1,index1,count1,params1);
}}
#endif

#ifndef GL_EXT_gpu_shader4
#define GL_EXT_gpu_shader4
#ifndef GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT
#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD
#endif //GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT
#ifndef GL_MIN_PROGRAM_TEXEL_OFFSET_EXT
#define GL_MIN_PROGRAM_TEXEL_OFFSET_EXT 0x8904
#endif //GL_MIN_PROGRAM_TEXEL_OFFSET_EXT
#ifndef GL_MAX_PROGRAM_TEXEL_OFFSET_EXT
#define GL_MAX_PROGRAM_TEXEL_OFFSET_EXT 0x8905
#endif //GL_MAX_PROGRAM_TEXEL_OFFSET_EXT
#ifndef GL_SAMPLER_1D_ARRAY_EXT
#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0
#endif //GL_SAMPLER_1D_ARRAY_EXT
#ifndef GL_SAMPLER_2D_ARRAY_EXT
#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1
#endif //GL_SAMPLER_2D_ARRAY_EXT
#ifndef GL_SAMPLER_BUFFER_EXT
#define GL_SAMPLER_BUFFER_EXT 0x8DC2
#endif //GL_SAMPLER_BUFFER_EXT
#ifndef GL_SAMPLER_1D_ARRAY_SHADOW_EXT
#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3
#endif //GL_SAMPLER_1D_ARRAY_SHADOW_EXT
#ifndef GL_SAMPLER_2D_ARRAY_SHADOW_EXT
#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4
#endif //GL_SAMPLER_2D_ARRAY_SHADOW_EXT
#ifndef GL_SAMPLER_CUBE_SHADOW_EXT
#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5
#endif //GL_SAMPLER_CUBE_SHADOW_EXT
#ifndef GL_UNSIGNED_INT_VEC2_EXT
#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6
#endif //GL_UNSIGNED_INT_VEC2_EXT
#ifndef GL_UNSIGNED_INT_VEC3_EXT
#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7
#endif //GL_UNSIGNED_INT_VEC3_EXT
#ifndef GL_UNSIGNED_INT_VEC4_EXT
#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8
#endif //GL_UNSIGNED_INT_VEC4_EXT
#ifndef GL_INT_SAMPLER_1D_EXT
#define GL_INT_SAMPLER_1D_EXT 0x8DC9
#endif //GL_INT_SAMPLER_1D_EXT
#ifndef GL_INT_SAMPLER_2D_EXT
#define GL_INT_SAMPLER_2D_EXT 0x8DCA
#endif //GL_INT_SAMPLER_2D_EXT
#ifndef GL_INT_SAMPLER_3D_EXT
#define GL_INT_SAMPLER_3D_EXT 0x8DCB
#endif //GL_INT_SAMPLER_3D_EXT
#ifndef GL_INT_SAMPLER_CUBE_EXT
#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC
#endif //GL_INT_SAMPLER_CUBE_EXT
#ifndef GL_INT_SAMPLER_2D_RECT_EXT
#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD
#endif //GL_INT_SAMPLER_2D_RECT_EXT
#ifndef GL_INT_SAMPLER_1D_ARRAY_EXT
#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE
#endif //GL_INT_SAMPLER_1D_ARRAY_EXT
#ifndef GL_INT_SAMPLER_2D_ARRAY_EXT
#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF
#endif //GL_INT_SAMPLER_2D_ARRAY_EXT
#ifndef GL_INT_SAMPLER_BUFFER_EXT
#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0
#endif //GL_INT_SAMPLER_BUFFER_EXT
#ifndef GL_UNSIGNED_INT_SAMPLER_1D_EXT
#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1
#endif //GL_UNSIGNED_INT_SAMPLER_1D_EXT
#ifndef GL_UNSIGNED_INT_SAMPLER_2D_EXT
#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2
#endif //GL_UNSIGNED_INT_SAMPLER_2D_EXT
#ifndef GL_UNSIGNED_INT_SAMPLER_3D_EXT
#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3
#endif //GL_UNSIGNED_INT_SAMPLER_3D_EXT
#ifndef GL_UNSIGNED_INT_SAMPLER_CUBE_EXT
#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4
#endif //GL_UNSIGNED_INT_SAMPLER_CUBE_EXT
#ifndef GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT
#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5
#endif //GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT
#ifndef GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT
#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6
#endif //GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT
#ifndef GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT
#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7
#endif //GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT
#ifndef GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT
#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8
#endif //GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDFRAGDATALOCATIONEXTPROC_HPP)(GLuint,GLuint,const GLchar *);
static inline void BindFragDataLocationEXT(GLuint program1,GLuint color1,const GLchar * name1)
{
	static PFNGLBINDFRAGDATALOCATIONEXTPROC_HPP fn=reinterpret_cast<PFNGLBINDFRAGDATALOCATIONEXTPROC_HPP>(_impl::_get_proc_address("glBindFragDataLocationEXT","GL_EXT_gpu_shader4"));
	 fn(program1,color1,name1);
}
typedef GLint (*PFNGLGETFRAGDATALOCATIONEXTPROC_HPP)(GLuint,const GLchar *);
static inline GLint GetFragDataLocationEXT(GLuint program1,const GLchar * name1)
{
	static PFNGLGETFRAGDATALOCATIONEXTPROC_HPP fn=reinterpret_cast<PFNGLGETFRAGDATALOCATIONEXTPROC_HPP>(_impl::_get_proc_address("glGetFragDataLocationEXT","GL_EXT_gpu_shader4"));
	return fn(program1,name1);
}
typedef void (*PFNGLGETUNIFORMUIVEXTPROC_HPP)(GLuint,GLint,GLuint *);
static inline void GetUniformuivEXT(GLuint program1,GLint location1,GLuint * params1)
{
	static PFNGLGETUNIFORMUIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETUNIFORMUIVEXTPROC_HPP>(_impl::_get_proc_address("glGetUniformuivEXT","GL_EXT_gpu_shader4"));
	 fn(program1,location1,params1);
}
typedef void (*PFNGLUNIFORM1UIEXTPROC_HPP)(GLint,GLuint);
static inline void Uniform1uiEXT(GLint location1,GLuint v01)
{
	static PFNGLUNIFORM1UIEXTPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM1UIEXTPROC_HPP>(_impl::_get_proc_address("glUniform1uiEXT","GL_EXT_gpu_shader4"));
	 fn(location1,v01);
}
typedef void (*PFNGLUNIFORM1UIVEXTPROC_HPP)(GLint,GLsizei,const GLuint *);
static inline void Uniform1uivEXT(GLint location1,GLsizei count1,const GLuint * value1)
{
	static PFNGLUNIFORM1UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM1UIVEXTPROC_HPP>(_impl::_get_proc_address("glUniform1uivEXT","GL_EXT_gpu_shader4"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM2UIEXTPROC_HPP)(GLint,GLuint,GLuint);
static inline void Uniform2uiEXT(GLint location1,GLuint v01,GLuint v11)
{
	static PFNGLUNIFORM2UIEXTPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM2UIEXTPROC_HPP>(_impl::_get_proc_address("glUniform2uiEXT","GL_EXT_gpu_shader4"));
	 fn(location1,v01,v11);
}
typedef void (*PFNGLUNIFORM2UIVEXTPROC_HPP)(GLint,GLsizei,const GLuint *);
static inline void Uniform2uivEXT(GLint location1,GLsizei count1,const GLuint * value1)
{
	static PFNGLUNIFORM2UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM2UIVEXTPROC_HPP>(_impl::_get_proc_address("glUniform2uivEXT","GL_EXT_gpu_shader4"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM3UIEXTPROC_HPP)(GLint,GLuint,GLuint,GLuint);
static inline void Uniform3uiEXT(GLint location1,GLuint v01,GLuint v11,GLuint v21)
{
	static PFNGLUNIFORM3UIEXTPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM3UIEXTPROC_HPP>(_impl::_get_proc_address("glUniform3uiEXT","GL_EXT_gpu_shader4"));
	 fn(location1,v01,v11,v21);
}
typedef void (*PFNGLUNIFORM3UIVEXTPROC_HPP)(GLint,GLsizei,const GLuint *);
static inline void Uniform3uivEXT(GLint location1,GLsizei count1,const GLuint * value1)
{
	static PFNGLUNIFORM3UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM3UIVEXTPROC_HPP>(_impl::_get_proc_address("glUniform3uivEXT","GL_EXT_gpu_shader4"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM4UIEXTPROC_HPP)(GLint,GLuint,GLuint,GLuint,GLuint);
static inline void Uniform4uiEXT(GLint location1,GLuint v01,GLuint v11,GLuint v21,GLuint v31)
{
	static PFNGLUNIFORM4UIEXTPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM4UIEXTPROC_HPP>(_impl::_get_proc_address("glUniform4uiEXT","GL_EXT_gpu_shader4"));
	 fn(location1,v01,v11,v21,v31);
}
typedef void (*PFNGLUNIFORM4UIVEXTPROC_HPP)(GLint,GLsizei,const GLuint *);
static inline void Uniform4uivEXT(GLint location1,GLsizei count1,const GLuint * value1)
{
	static PFNGLUNIFORM4UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM4UIVEXTPROC_HPP>(_impl::_get_proc_address("glUniform4uivEXT","GL_EXT_gpu_shader4"));
	 fn(location1,count1,value1);
}}
#endif

#ifndef GL_EXT_histogram
#define GL_EXT_histogram
#ifndef GL_HISTOGRAM_EXT
#define GL_HISTOGRAM_EXT 0x8024
#endif //GL_HISTOGRAM_EXT
#ifndef GL_PROXY_HISTOGRAM_EXT
#define GL_PROXY_HISTOGRAM_EXT 0x8025
#endif //GL_PROXY_HISTOGRAM_EXT
#ifndef GL_HISTOGRAM_WIDTH_EXT
#define GL_HISTOGRAM_WIDTH_EXT 0x8026
#endif //GL_HISTOGRAM_WIDTH_EXT
#ifndef GL_HISTOGRAM_FORMAT_EXT
#define GL_HISTOGRAM_FORMAT_EXT 0x8027
#endif //GL_HISTOGRAM_FORMAT_EXT
#ifndef GL_HISTOGRAM_RED_SIZE_EXT
#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028
#endif //GL_HISTOGRAM_RED_SIZE_EXT
#ifndef GL_HISTOGRAM_GREEN_SIZE_EXT
#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029
#endif //GL_HISTOGRAM_GREEN_SIZE_EXT
#ifndef GL_HISTOGRAM_BLUE_SIZE_EXT
#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A
#endif //GL_HISTOGRAM_BLUE_SIZE_EXT
#ifndef GL_HISTOGRAM_ALPHA_SIZE_EXT
#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B
#endif //GL_HISTOGRAM_ALPHA_SIZE_EXT
#ifndef GL_HISTOGRAM_LUMINANCE_SIZE_EXT
#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C
#endif //GL_HISTOGRAM_LUMINANCE_SIZE_EXT
#ifndef GL_HISTOGRAM_SINK_EXT
#define GL_HISTOGRAM_SINK_EXT 0x802D
#endif //GL_HISTOGRAM_SINK_EXT
#ifndef GL_MINMAX_EXT
#define GL_MINMAX_EXT 0x802E
#endif //GL_MINMAX_EXT
#ifndef GL_MINMAX_FORMAT_EXT
#define GL_MINMAX_FORMAT_EXT 0x802F
#endif //GL_MINMAX_FORMAT_EXT
#ifndef GL_MINMAX_SINK_EXT
#define GL_MINMAX_SINK_EXT 0x8030
#endif //GL_MINMAX_SINK_EXT
#ifndef GL_TABLE_TOO_LARGE_EXT
#define GL_TABLE_TOO_LARGE_EXT 0x8031
#endif //GL_TABLE_TOO_LARGE_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETHISTOGRAMEXTPROC_HPP)(GLenum,GLboolean,GLenum,GLenum,void *);
static inline void GetHistogramEXT(GLenum target1,GLboolean reset1,GLenum format1,GLenum type1,void * values1)
{
	static PFNGLGETHISTOGRAMEXTPROC_HPP fn=reinterpret_cast<PFNGLGETHISTOGRAMEXTPROC_HPP>(_impl::_get_proc_address("glGetHistogramEXT","GL_EXT_histogram"));
	 fn(target1,reset1,format1,type1,values1);
}
typedef void (*PFNGLGETHISTOGRAMPARAMETERFVEXTPROC_HPP)(GLenum,GLenum,GLfloat *);
static inline void GetHistogramParameterfvEXT(GLenum target1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETHISTOGRAMPARAMETERFVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETHISTOGRAMPARAMETERFVEXTPROC_HPP>(_impl::_get_proc_address("glGetHistogramParameterfvEXT","GL_EXT_histogram"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETHISTOGRAMPARAMETERIVEXTPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetHistogramParameterivEXT(GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETHISTOGRAMPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETHISTOGRAMPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glGetHistogramParameterivEXT","GL_EXT_histogram"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETMINMAXEXTPROC_HPP)(GLenum,GLboolean,GLenum,GLenum,void *);
static inline void GetMinmaxEXT(GLenum target1,GLboolean reset1,GLenum format1,GLenum type1,void * values1)
{
	static PFNGLGETMINMAXEXTPROC_HPP fn=reinterpret_cast<PFNGLGETMINMAXEXTPROC_HPP>(_impl::_get_proc_address("glGetMinmaxEXT","GL_EXT_histogram"));
	 fn(target1,reset1,format1,type1,values1);
}
typedef void (*PFNGLGETMINMAXPARAMETERFVEXTPROC_HPP)(GLenum,GLenum,GLfloat *);
static inline void GetMinmaxParameterfvEXT(GLenum target1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETMINMAXPARAMETERFVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETMINMAXPARAMETERFVEXTPROC_HPP>(_impl::_get_proc_address("glGetMinmaxParameterfvEXT","GL_EXT_histogram"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETMINMAXPARAMETERIVEXTPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetMinmaxParameterivEXT(GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETMINMAXPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETMINMAXPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glGetMinmaxParameterivEXT","GL_EXT_histogram"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLHISTOGRAMEXTPROC_HPP)(GLenum,GLsizei,GLenum,GLboolean);
static inline void HistogramEXT(GLenum target1,GLsizei width1,GLenum internalformat1,GLboolean sink1)
{
	static PFNGLHISTOGRAMEXTPROC_HPP fn=reinterpret_cast<PFNGLHISTOGRAMEXTPROC_HPP>(_impl::_get_proc_address("glHistogramEXT","GL_EXT_histogram"));
	 fn(target1,width1,internalformat1,sink1);
}
typedef void (*PFNGLMINMAXEXTPROC_HPP)(GLenum,GLenum,GLboolean);
static inline void MinmaxEXT(GLenum target1,GLenum internalformat1,GLboolean sink1)
{
	static PFNGLMINMAXEXTPROC_HPP fn=reinterpret_cast<PFNGLMINMAXEXTPROC_HPP>(_impl::_get_proc_address("glMinmaxEXT","GL_EXT_histogram"));
	 fn(target1,internalformat1,sink1);
}
typedef void (*PFNGLRESETHISTOGRAMEXTPROC_HPP)(GLenum);
static inline void ResetHistogramEXT(GLenum target1)
{
	static PFNGLRESETHISTOGRAMEXTPROC_HPP fn=reinterpret_cast<PFNGLRESETHISTOGRAMEXTPROC_HPP>(_impl::_get_proc_address("glResetHistogramEXT","GL_EXT_histogram"));
	 fn(target1);
}
typedef void (*PFNGLRESETMINMAXEXTPROC_HPP)(GLenum);
static inline void ResetMinmaxEXT(GLenum target1)
{
	static PFNGLRESETMINMAXEXTPROC_HPP fn=reinterpret_cast<PFNGLRESETMINMAXEXTPROC_HPP>(_impl::_get_proc_address("glResetMinmaxEXT","GL_EXT_histogram"));
	 fn(target1);
}}
#endif

#ifndef GL_EXT_index_array_formats
#define GL_EXT_index_array_formats
#ifndef GL_IUI_V2F_EXT
#define GL_IUI_V2F_EXT 0x81AD
#endif //GL_IUI_V2F_EXT
#ifndef GL_IUI_V3F_EXT
#define GL_IUI_V3F_EXT 0x81AE
#endif //GL_IUI_V3F_EXT
#ifndef GL_IUI_N3F_V2F_EXT
#define GL_IUI_N3F_V2F_EXT 0x81AF
#endif //GL_IUI_N3F_V2F_EXT
#ifndef GL_IUI_N3F_V3F_EXT
#define GL_IUI_N3F_V3F_EXT 0x81B0
#endif //GL_IUI_N3F_V3F_EXT
#ifndef GL_T2F_IUI_V2F_EXT
#define GL_T2F_IUI_V2F_EXT 0x81B1
#endif //GL_T2F_IUI_V2F_EXT
#ifndef GL_T2F_IUI_V3F_EXT
#define GL_T2F_IUI_V3F_EXT 0x81B2
#endif //GL_T2F_IUI_V3F_EXT
#ifndef GL_T2F_IUI_N3F_V2F_EXT
#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3
#endif //GL_T2F_IUI_N3F_V2F_EXT
#ifndef GL_T2F_IUI_N3F_V3F_EXT
#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4
#endif //GL_T2F_IUI_N3F_V3F_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_index_func
#define GL_EXT_index_func
#ifndef GL_INDEX_TEST_EXT
#define GL_INDEX_TEST_EXT 0x81B5
#endif //GL_INDEX_TEST_EXT
#ifndef GL_INDEX_TEST_FUNC_EXT
#define GL_INDEX_TEST_FUNC_EXT 0x81B6
#endif //GL_INDEX_TEST_FUNC_EXT
#ifndef GL_INDEX_TEST_REF_EXT
#define GL_INDEX_TEST_REF_EXT 0x81B7
#endif //GL_INDEX_TEST_REF_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLINDEXFUNCEXTPROC_HPP)(GLenum,GLclampf);
static inline void IndexFuncEXT(GLenum func1,GLclampf ref1)
{
	static PFNGLINDEXFUNCEXTPROC_HPP fn=reinterpret_cast<PFNGLINDEXFUNCEXTPROC_HPP>(_impl::_get_proc_address("glIndexFuncEXT","GL_EXT_index_func"));
	 fn(func1,ref1);
}}
#endif

#ifndef GL_EXT_index_material
#define GL_EXT_index_material
#ifndef GL_INDEX_MATERIAL_EXT
#define GL_INDEX_MATERIAL_EXT 0x81B8
#endif //GL_INDEX_MATERIAL_EXT
#ifndef GL_INDEX_MATERIAL_PARAMETER_EXT
#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9
#endif //GL_INDEX_MATERIAL_PARAMETER_EXT
#ifndef GL_INDEX_MATERIAL_FACE_EXT
#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA
#endif //GL_INDEX_MATERIAL_FACE_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLINDEXMATERIALEXTPROC_HPP)(GLenum,GLenum);
static inline void IndexMaterialEXT(GLenum face1,GLenum mode1)
{
	static PFNGLINDEXMATERIALEXTPROC_HPP fn=reinterpret_cast<PFNGLINDEXMATERIALEXTPROC_HPP>(_impl::_get_proc_address("glIndexMaterialEXT","GL_EXT_index_material"));
	 fn(face1,mode1);
}}
#endif

#ifndef GL_EXT_index_texture
#define GL_EXT_index_texture
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_light_texture
#define GL_EXT_light_texture
#ifndef GL_FRAGMENT_MATERIAL_EXT
#define GL_FRAGMENT_MATERIAL_EXT 0x8349
#endif //GL_FRAGMENT_MATERIAL_EXT
#ifndef GL_FRAGMENT_NORMAL_EXT
#define GL_FRAGMENT_NORMAL_EXT 0x834A
#endif //GL_FRAGMENT_NORMAL_EXT
#ifndef GL_FRAGMENT_COLOR_EXT
#define GL_FRAGMENT_COLOR_EXT 0x834C
#endif //GL_FRAGMENT_COLOR_EXT
#ifndef GL_ATTENUATION_EXT
#define GL_ATTENUATION_EXT 0x834D
#endif //GL_ATTENUATION_EXT
#ifndef GL_SHADOW_ATTENUATION_EXT
#define GL_SHADOW_ATTENUATION_EXT 0x834E
#endif //GL_SHADOW_ATTENUATION_EXT
#ifndef GL_TEXTURE_APPLICATION_MODE_EXT
#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F
#endif //GL_TEXTURE_APPLICATION_MODE_EXT
#ifndef GL_TEXTURE_LIGHT_EXT
#define GL_TEXTURE_LIGHT_EXT 0x8350
#endif //GL_TEXTURE_LIGHT_EXT
#ifndef GL_TEXTURE_MATERIAL_FACE_EXT
#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351
#endif //GL_TEXTURE_MATERIAL_FACE_EXT
#ifndef GL_TEXTURE_MATERIAL_PARAMETER_EXT
#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352
#endif //GL_TEXTURE_MATERIAL_PARAMETER_EXT
#ifndef GL_FRAGMENT_DEPTH_EXT
#define GL_FRAGMENT_DEPTH_EXT 0x8452
#endif //GL_FRAGMENT_DEPTH_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLAPPLYTEXTUREEXTPROC_HPP)(GLenum);
static inline void ApplyTextureEXT(GLenum mode1)
{
	static PFNGLAPPLYTEXTUREEXTPROC_HPP fn=reinterpret_cast<PFNGLAPPLYTEXTUREEXTPROC_HPP>(_impl::_get_proc_address("glApplyTextureEXT","GL_EXT_light_texture"));
	 fn(mode1);
}
typedef void (*PFNGLTEXTURELIGHTEXTPROC_HPP)(GLenum);
static inline void TextureLightEXT(GLenum pname1)
{
	static PFNGLTEXTURELIGHTEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTURELIGHTEXTPROC_HPP>(_impl::_get_proc_address("glTextureLightEXT","GL_EXT_light_texture"));
	 fn(pname1);
}
typedef void (*PFNGLTEXTUREMATERIALEXTPROC_HPP)(GLenum,GLenum);
static inline void TextureMaterialEXT(GLenum face1,GLenum mode1)
{
	static PFNGLTEXTUREMATERIALEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREMATERIALEXTPROC_HPP>(_impl::_get_proc_address("glTextureMaterialEXT","GL_EXT_light_texture"));
	 fn(face1,mode1);
}}
#endif

#ifndef GL_EXT_misc_attribute
#define GL_EXT_misc_attribute
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_multi_draw_arrays
#define GL_EXT_multi_draw_arrays
extern "C" {
}
namespace gl{

typedef void (*PFNGLMULTIDRAWARRAYSEXTPROC_HPP)(GLenum,const GLint *,const GLsizei *,GLsizei);
static inline void MultiDrawArraysEXT(GLenum mode1,const GLint * first1,const GLsizei * count1,GLsizei primcount1)
{
	static PFNGLMULTIDRAWARRAYSEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTIDRAWARRAYSEXTPROC_HPP>(_impl::_get_proc_address("glMultiDrawArraysEXT","GL_EXT_multi_draw_arrays"));
	 fn(mode1,first1,count1,primcount1);
}
typedef void (*PFNGLMULTIDRAWELEMENTSEXTPROC_HPP)(GLenum,const GLsizei *,GLenum,const void *const*,GLsizei);
static inline void MultiDrawElementsEXT(GLenum mode1,const GLsizei * count1,GLenum type1,const void *const* indices1,GLsizei primcount1)
{
	static PFNGLMULTIDRAWELEMENTSEXTPROC_HPP fn=reinterpret_cast<PFNGLMULTIDRAWELEMENTSEXTPROC_HPP>(_impl::_get_proc_address("glMultiDrawElementsEXT","GL_EXT_multi_draw_arrays"));
	 fn(mode1,count1,type1,indices1,primcount1);
}}
#endif

#ifndef GL_EXT_multisample
#define GL_EXT_multisample
#ifndef GL_MULTISAMPLE_BIT_EXT
#define GL_MULTISAMPLE_BIT_EXT 0x20000000
#endif //GL_MULTISAMPLE_BIT_EXT
#ifndef GL_MULTISAMPLE_EXT
#define GL_MULTISAMPLE_EXT 0x809D
#endif //GL_MULTISAMPLE_EXT
#ifndef GL_SAMPLE_ALPHA_TO_MASK_EXT
#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E
#endif //GL_SAMPLE_ALPHA_TO_MASK_EXT
#ifndef GL_SAMPLE_ALPHA_TO_ONE_EXT
#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F
#endif //GL_SAMPLE_ALPHA_TO_ONE_EXT
#ifndef GL_SAMPLE_MASK_EXT
#define GL_SAMPLE_MASK_EXT 0x80A0
#endif //GL_SAMPLE_MASK_EXT
#ifndef GL_1PASS_EXT
#define GL_1PASS_EXT 0x80A1
#endif //GL_1PASS_EXT
#ifndef GL_2PASS_0_EXT
#define GL_2PASS_0_EXT 0x80A2
#endif //GL_2PASS_0_EXT
#ifndef GL_2PASS_1_EXT
#define GL_2PASS_1_EXT 0x80A3
#endif //GL_2PASS_1_EXT
#ifndef GL_4PASS_0_EXT
#define GL_4PASS_0_EXT 0x80A4
#endif //GL_4PASS_0_EXT
#ifndef GL_4PASS_1_EXT
#define GL_4PASS_1_EXT 0x80A5
#endif //GL_4PASS_1_EXT
#ifndef GL_4PASS_2_EXT
#define GL_4PASS_2_EXT 0x80A6
#endif //GL_4PASS_2_EXT
#ifndef GL_4PASS_3_EXT
#define GL_4PASS_3_EXT 0x80A7
#endif //GL_4PASS_3_EXT
#ifndef GL_SAMPLE_BUFFERS_EXT
#define GL_SAMPLE_BUFFERS_EXT 0x80A8
#endif //GL_SAMPLE_BUFFERS_EXT
#ifndef GL_SAMPLES_EXT
#define GL_SAMPLES_EXT 0x80A9
#endif //GL_SAMPLES_EXT
#ifndef GL_SAMPLE_MASK_VALUE_EXT
#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA
#endif //GL_SAMPLE_MASK_VALUE_EXT
#ifndef GL_SAMPLE_MASK_INVERT_EXT
#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB
#endif //GL_SAMPLE_MASK_INVERT_EXT
#ifndef GL_SAMPLE_PATTERN_EXT
#define GL_SAMPLE_PATTERN_EXT 0x80AC
#endif //GL_SAMPLE_PATTERN_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLSAMPLEMASKEXTPROC_HPP)(GLclampf,GLboolean);
static inline void SampleMaskEXT(GLclampf value1,GLboolean invert1)
{
	static PFNGLSAMPLEMASKEXTPROC_HPP fn=reinterpret_cast<PFNGLSAMPLEMASKEXTPROC_HPP>(_impl::_get_proc_address("glSampleMaskEXT","GL_EXT_multisample"));
	 fn(value1,invert1);
}
typedef void (*PFNGLSAMPLEPATTERNEXTPROC_HPP)(GLenum);
static inline void SamplePatternEXT(GLenum pattern1)
{
	static PFNGLSAMPLEPATTERNEXTPROC_HPP fn=reinterpret_cast<PFNGLSAMPLEPATTERNEXTPROC_HPP>(_impl::_get_proc_address("glSamplePatternEXT","GL_EXT_multisample"));
	 fn(pattern1);
}}
#endif

#ifndef GL_EXT_packed_depth_stencil
#define GL_EXT_packed_depth_stencil
#ifndef GL_DEPTH_STENCIL_EXT
#define GL_DEPTH_STENCIL_EXT 0x84F9
#endif //GL_DEPTH_STENCIL_EXT
#ifndef GL_UNSIGNED_INT_24_8_EXT
#define GL_UNSIGNED_INT_24_8_EXT 0x84FA
#endif //GL_UNSIGNED_INT_24_8_EXT
#ifndef GL_DEPTH24_STENCIL8_EXT
#define GL_DEPTH24_STENCIL8_EXT 0x88F0
#endif //GL_DEPTH24_STENCIL8_EXT
#ifndef GL_TEXTURE_STENCIL_SIZE_EXT
#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1
#endif //GL_TEXTURE_STENCIL_SIZE_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_packed_float
#define GL_EXT_packed_float
#ifndef GL_R11F_G11F_B10F_EXT
#define GL_R11F_G11F_B10F_EXT 0x8C3A
#endif //GL_R11F_G11F_B10F_EXT
#ifndef GL_UNSIGNED_INT_10F_11F_11F_REV_EXT
#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B
#endif //GL_UNSIGNED_INT_10F_11F_11F_REV_EXT
#ifndef GL_RGBA_SIGNED_COMPONENTS_EXT
#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C
#endif //GL_RGBA_SIGNED_COMPONENTS_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_packed_pixels
#define GL_EXT_packed_pixels
#ifndef GL_UNSIGNED_BYTE_3_3_2_EXT
#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032
#endif //GL_UNSIGNED_BYTE_3_3_2_EXT
#ifndef GL_UNSIGNED_SHORT_4_4_4_4_EXT
#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033
#endif //GL_UNSIGNED_SHORT_4_4_4_4_EXT
#ifndef GL_UNSIGNED_SHORT_5_5_5_1_EXT
#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034
#endif //GL_UNSIGNED_SHORT_5_5_5_1_EXT
#ifndef GL_UNSIGNED_INT_8_8_8_8_EXT
#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035
#endif //GL_UNSIGNED_INT_8_8_8_8_EXT
#ifndef GL_UNSIGNED_INT_10_10_10_2_EXT
#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036
#endif //GL_UNSIGNED_INT_10_10_10_2_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_paletted_texture
#define GL_EXT_paletted_texture
#ifndef GL_COLOR_INDEX1_EXT
#define GL_COLOR_INDEX1_EXT 0x80E2
#endif //GL_COLOR_INDEX1_EXT
#ifndef GL_COLOR_INDEX2_EXT
#define GL_COLOR_INDEX2_EXT 0x80E3
#endif //GL_COLOR_INDEX2_EXT
#ifndef GL_COLOR_INDEX4_EXT
#define GL_COLOR_INDEX4_EXT 0x80E4
#endif //GL_COLOR_INDEX4_EXT
#ifndef GL_COLOR_INDEX8_EXT
#define GL_COLOR_INDEX8_EXT 0x80E5
#endif //GL_COLOR_INDEX8_EXT
#ifndef GL_COLOR_INDEX12_EXT
#define GL_COLOR_INDEX12_EXT 0x80E6
#endif //GL_COLOR_INDEX12_EXT
#ifndef GL_COLOR_INDEX16_EXT
#define GL_COLOR_INDEX16_EXT 0x80E7
#endif //GL_COLOR_INDEX16_EXT
#ifndef GL_TEXTURE_INDEX_SIZE_EXT
#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED
#endif //GL_TEXTURE_INDEX_SIZE_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLCOLORTABLEEXTPROC_HPP)(GLenum,GLenum,GLsizei,GLenum,GLenum,const void *);
static inline void ColorTableEXT(GLenum target1,GLenum internalFormat1,GLsizei width1,GLenum format1,GLenum type1,const void * table1)
{
	static PFNGLCOLORTABLEEXTPROC_HPP fn=reinterpret_cast<PFNGLCOLORTABLEEXTPROC_HPP>(_impl::_get_proc_address("glColorTableEXT","GL_EXT_paletted_texture"));
	 fn(target1,internalFormat1,width1,format1,type1,table1);
}
typedef void (*PFNGLGETCOLORTABLEEXTPROC_HPP)(GLenum,GLenum,GLenum,void *);
static inline void GetColorTableEXT(GLenum target1,GLenum format1,GLenum type1,void * data1)
{
	static PFNGLGETCOLORTABLEEXTPROC_HPP fn=reinterpret_cast<PFNGLGETCOLORTABLEEXTPROC_HPP>(_impl::_get_proc_address("glGetColorTableEXT","GL_EXT_paletted_texture"));
	 fn(target1,format1,type1,data1);
}
typedef void (*PFNGLGETCOLORTABLEPARAMETERFVEXTPROC_HPP)(GLenum,GLenum,GLfloat *);
static inline void GetColorTableParameterfvEXT(GLenum target1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETCOLORTABLEPARAMETERFVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETCOLORTABLEPARAMETERFVEXTPROC_HPP>(_impl::_get_proc_address("glGetColorTableParameterfvEXT","GL_EXT_paletted_texture"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETCOLORTABLEPARAMETERIVEXTPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetColorTableParameterivEXT(GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETCOLORTABLEPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETCOLORTABLEPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glGetColorTableParameterivEXT","GL_EXT_paletted_texture"));
	 fn(target1,pname1,params1);
}}
#endif

#ifndef GL_EXT_pixel_buffer_object
#define GL_EXT_pixel_buffer_object
#ifndef GL_PIXEL_PACK_BUFFER_EXT
#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB
#endif //GL_PIXEL_PACK_BUFFER_EXT
#ifndef GL_PIXEL_UNPACK_BUFFER_EXT
#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC
#endif //GL_PIXEL_UNPACK_BUFFER_EXT
#ifndef GL_PIXEL_PACK_BUFFER_BINDING_EXT
#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED
#endif //GL_PIXEL_PACK_BUFFER_BINDING_EXT
#ifndef GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF
#endif //GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_pixel_transform
#define GL_EXT_pixel_transform
#ifndef GL_PIXEL_TRANSFORM_2D_EXT
#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330
#endif //GL_PIXEL_TRANSFORM_2D_EXT
#ifndef GL_PIXEL_MAG_FILTER_EXT
#define GL_PIXEL_MAG_FILTER_EXT 0x8331
#endif //GL_PIXEL_MAG_FILTER_EXT
#ifndef GL_PIXEL_MIN_FILTER_EXT
#define GL_PIXEL_MIN_FILTER_EXT 0x8332
#endif //GL_PIXEL_MIN_FILTER_EXT
#ifndef GL_PIXEL_CUBIC_WEIGHT_EXT
#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333
#endif //GL_PIXEL_CUBIC_WEIGHT_EXT
#ifndef GL_CUBIC_EXT
#define GL_CUBIC_EXT 0x8334
#endif //GL_CUBIC_EXT
#ifndef GL_AVERAGE_EXT
#define GL_AVERAGE_EXT 0x8335
#endif //GL_AVERAGE_EXT
#ifndef GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT
#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336
#endif //GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT
#ifndef GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT
#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337
#endif //GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT
#ifndef GL_PIXEL_TRANSFORM_2D_MATRIX_EXT
#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338
#endif //GL_PIXEL_TRANSFORM_2D_MATRIX_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC_HPP)(GLenum,GLenum,GLfloat *);
static inline void GetPixelTransformParameterfvEXT(GLenum target1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC_HPP>(_impl::_get_proc_address("glGetPixelTransformParameterfvEXT","GL_EXT_pixel_transform"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetPixelTransformParameterivEXT(GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glGetPixelTransformParameterivEXT","GL_EXT_pixel_transform"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLPIXELTRANSFORMPARAMETERFEXTPROC_HPP)(GLenum,GLenum,GLfloat);
static inline void PixelTransformParameterfEXT(GLenum target1,GLenum pname1,GLfloat param1)
{
	static PFNGLPIXELTRANSFORMPARAMETERFEXTPROC_HPP fn=reinterpret_cast<PFNGLPIXELTRANSFORMPARAMETERFEXTPROC_HPP>(_impl::_get_proc_address("glPixelTransformParameterfEXT","GL_EXT_pixel_transform"));
	 fn(target1,pname1,param1);
}
typedef void (*PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC_HPP)(GLenum,GLenum,const GLfloat *);
static inline void PixelTransformParameterfvEXT(GLenum target1,GLenum pname1,const GLfloat * params1)
{
	static PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC_HPP fn=reinterpret_cast<PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC_HPP>(_impl::_get_proc_address("glPixelTransformParameterfvEXT","GL_EXT_pixel_transform"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLPIXELTRANSFORMPARAMETERIEXTPROC_HPP)(GLenum,GLenum,GLint);
static inline void PixelTransformParameteriEXT(GLenum target1,GLenum pname1,GLint param1)
{
	static PFNGLPIXELTRANSFORMPARAMETERIEXTPROC_HPP fn=reinterpret_cast<PFNGLPIXELTRANSFORMPARAMETERIEXTPROC_HPP>(_impl::_get_proc_address("glPixelTransformParameteriEXT","GL_EXT_pixel_transform"));
	 fn(target1,pname1,param1);
}
typedef void (*PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC_HPP)(GLenum,GLenum,const GLint *);
static inline void PixelTransformParameterivEXT(GLenum target1,GLenum pname1,const GLint * params1)
{
	static PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC_HPP fn=reinterpret_cast<PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC_HPP>(_impl::_get_proc_address("glPixelTransformParameterivEXT","GL_EXT_pixel_transform"));
	 fn(target1,pname1,params1);
}}
#endif

#ifndef GL_EXT_pixel_transform_color_table
#define GL_EXT_pixel_transform_color_table
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_point_parameters
#define GL_EXT_point_parameters
#ifndef GL_POINT_SIZE_MIN_EXT
#define GL_POINT_SIZE_MIN_EXT 0x8126
#endif //GL_POINT_SIZE_MIN_EXT
#ifndef GL_POINT_SIZE_MAX_EXT
#define GL_POINT_SIZE_MAX_EXT 0x8127
#endif //GL_POINT_SIZE_MAX_EXT
#ifndef GL_POINT_FADE_THRESHOLD_SIZE_EXT
#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128
#endif //GL_POINT_FADE_THRESHOLD_SIZE_EXT
#ifndef GL_DISTANCE_ATTENUATION_EXT
#define GL_DISTANCE_ATTENUATION_EXT 0x8129
#endif //GL_DISTANCE_ATTENUATION_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLPOINTPARAMETERFEXTPROC_HPP)(GLenum,GLfloat);
static inline void PointParameterfEXT(GLenum pname1,GLfloat param1)
{
	static PFNGLPOINTPARAMETERFEXTPROC_HPP fn=reinterpret_cast<PFNGLPOINTPARAMETERFEXTPROC_HPP>(_impl::_get_proc_address("glPointParameterfEXT","GL_EXT_point_parameters"));
	 fn(pname1,param1);
}
typedef void (*PFNGLPOINTPARAMETERFVEXTPROC_HPP)(GLenum,const GLfloat *);
static inline void PointParameterfvEXT(GLenum pname1,const GLfloat * params1)
{
	static PFNGLPOINTPARAMETERFVEXTPROC_HPP fn=reinterpret_cast<PFNGLPOINTPARAMETERFVEXTPROC_HPP>(_impl::_get_proc_address("glPointParameterfvEXT","GL_EXT_point_parameters"));
	 fn(pname1,params1);
}}
#endif

#ifndef GL_EXT_polygon_offset
#define GL_EXT_polygon_offset
#ifndef GL_POLYGON_OFFSET_EXT
#define GL_POLYGON_OFFSET_EXT 0x8037
#endif //GL_POLYGON_OFFSET_EXT
#ifndef GL_POLYGON_OFFSET_FACTOR_EXT
#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038
#endif //GL_POLYGON_OFFSET_FACTOR_EXT
#ifndef GL_POLYGON_OFFSET_BIAS_EXT
#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039
#endif //GL_POLYGON_OFFSET_BIAS_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLPOLYGONOFFSETEXTPROC_HPP)(GLfloat,GLfloat);
static inline void PolygonOffsetEXT(GLfloat factor1,GLfloat bias1)
{
	static PFNGLPOLYGONOFFSETEXTPROC_HPP fn=reinterpret_cast<PFNGLPOLYGONOFFSETEXTPROC_HPP>(_impl::_get_proc_address("glPolygonOffsetEXT","GL_EXT_polygon_offset"));
	 fn(factor1,bias1);
}}
#endif

#ifndef GL_EXT_polygon_offset_clamp
#define GL_EXT_polygon_offset_clamp
#ifndef GL_POLYGON_OFFSET_CLAMP_EXT
#define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B
#endif //GL_POLYGON_OFFSET_CLAMP_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLPOLYGONOFFSETCLAMPEXTPROC_HPP)(GLfloat,GLfloat,GLfloat);
static inline void PolygonOffsetClampEXT(GLfloat factor1,GLfloat units1,GLfloat clamp1)
{
	static PFNGLPOLYGONOFFSETCLAMPEXTPROC_HPP fn=reinterpret_cast<PFNGLPOLYGONOFFSETCLAMPEXTPROC_HPP>(_impl::_get_proc_address("glPolygonOffsetClampEXT","GL_EXT_polygon_offset_clamp"));
	 fn(factor1,units1,clamp1);
}}
#endif

#ifndef GL_EXT_provoking_vertex
#define GL_EXT_provoking_vertex
#ifndef GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C
#endif //GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
#ifndef GL_FIRST_VERTEX_CONVENTION_EXT
#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D
#endif //GL_FIRST_VERTEX_CONVENTION_EXT
#ifndef GL_LAST_VERTEX_CONVENTION_EXT
#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E
#endif //GL_LAST_VERTEX_CONVENTION_EXT
#ifndef GL_PROVOKING_VERTEX_EXT
#define GL_PROVOKING_VERTEX_EXT 0x8E4F
#endif //GL_PROVOKING_VERTEX_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLPROVOKINGVERTEXEXTPROC_HPP)(GLenum);
static inline void ProvokingVertexEXT(GLenum mode1)
{
	static PFNGLPROVOKINGVERTEXEXTPROC_HPP fn=reinterpret_cast<PFNGLPROVOKINGVERTEXEXTPROC_HPP>(_impl::_get_proc_address("glProvokingVertexEXT","GL_EXT_provoking_vertex"));
	 fn(mode1);
}}
#endif

#ifndef GL_EXT_rescale_normal
#define GL_EXT_rescale_normal
#ifndef GL_RESCALE_NORMAL_EXT
#define GL_RESCALE_NORMAL_EXT 0x803A
#endif //GL_RESCALE_NORMAL_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_secondary_color
#define GL_EXT_secondary_color
#ifndef GL_COLOR_SUM_EXT
#define GL_COLOR_SUM_EXT 0x8458
#endif //GL_COLOR_SUM_EXT
#ifndef GL_CURRENT_SECONDARY_COLOR_EXT
#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459
#endif //GL_CURRENT_SECONDARY_COLOR_EXT
#ifndef GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A
#endif //GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
#ifndef GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B
#endif //GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
#ifndef GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C
#endif //GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
#ifndef GL_SECONDARY_COLOR_ARRAY_POINTER_EXT
#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D
#endif //GL_SECONDARY_COLOR_ARRAY_POINTER_EXT
#ifndef GL_SECONDARY_COLOR_ARRAY_EXT
#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E
#endif //GL_SECONDARY_COLOR_ARRAY_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLSECONDARYCOLOR3BEXTPROC_HPP)(GLbyte,GLbyte,GLbyte);
static inline void SecondaryColor3bEXT(GLbyte red1,GLbyte green1,GLbyte blue1)
{
	static PFNGLSECONDARYCOLOR3BEXTPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLOR3BEXTPROC_HPP>(_impl::_get_proc_address("glSecondaryColor3bEXT","GL_EXT_secondary_color"));
	 fn(red1,green1,blue1);
}
typedef void (*PFNGLSECONDARYCOLOR3BVEXTPROC_HPP)(const GLbyte *);
static inline void SecondaryColor3bvEXT(const GLbyte * v1)
{
	static PFNGLSECONDARYCOLOR3BVEXTPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLOR3BVEXTPROC_HPP>(_impl::_get_proc_address("glSecondaryColor3bvEXT","GL_EXT_secondary_color"));
	 fn(v1);
}
typedef void (*PFNGLSECONDARYCOLOR3DEXTPROC_HPP)(GLdouble,GLdouble,GLdouble);
static inline void SecondaryColor3dEXT(GLdouble red1,GLdouble green1,GLdouble blue1)
{
	static PFNGLSECONDARYCOLOR3DEXTPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLOR3DEXTPROC_HPP>(_impl::_get_proc_address("glSecondaryColor3dEXT","GL_EXT_secondary_color"));
	 fn(red1,green1,blue1);
}
typedef void (*PFNGLSECONDARYCOLOR3DVEXTPROC_HPP)(const GLdouble *);
static inline void SecondaryColor3dvEXT(const GLdouble * v1)
{
	static PFNGLSECONDARYCOLOR3DVEXTPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLOR3DVEXTPROC_HPP>(_impl::_get_proc_address("glSecondaryColor3dvEXT","GL_EXT_secondary_color"));
	 fn(v1);
}
typedef void (*PFNGLSECONDARYCOLOR3FEXTPROC_HPP)(GLfloat,GLfloat,GLfloat);
static inline void SecondaryColor3fEXT(GLfloat red1,GLfloat green1,GLfloat blue1)
{
	static PFNGLSECONDARYCOLOR3FEXTPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLOR3FEXTPROC_HPP>(_impl::_get_proc_address("glSecondaryColor3fEXT","GL_EXT_secondary_color"));
	 fn(red1,green1,blue1);
}
typedef void (*PFNGLSECONDARYCOLOR3FVEXTPROC_HPP)(const GLfloat *);
static inline void SecondaryColor3fvEXT(const GLfloat * v1)
{
	static PFNGLSECONDARYCOLOR3FVEXTPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLOR3FVEXTPROC_HPP>(_impl::_get_proc_address("glSecondaryColor3fvEXT","GL_EXT_secondary_color"));
	 fn(v1);
}
typedef void (*PFNGLSECONDARYCOLOR3IEXTPROC_HPP)(GLint,GLint,GLint);
static inline void SecondaryColor3iEXT(GLint red1,GLint green1,GLint blue1)
{
	static PFNGLSECONDARYCOLOR3IEXTPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLOR3IEXTPROC_HPP>(_impl::_get_proc_address("glSecondaryColor3iEXT","GL_EXT_secondary_color"));
	 fn(red1,green1,blue1);
}
typedef void (*PFNGLSECONDARYCOLOR3IVEXTPROC_HPP)(const GLint *);
static inline void SecondaryColor3ivEXT(const GLint * v1)
{
	static PFNGLSECONDARYCOLOR3IVEXTPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLOR3IVEXTPROC_HPP>(_impl::_get_proc_address("glSecondaryColor3ivEXT","GL_EXT_secondary_color"));
	 fn(v1);
}
typedef void (*PFNGLSECONDARYCOLOR3SEXTPROC_HPP)(GLshort,GLshort,GLshort);
static inline void SecondaryColor3sEXT(GLshort red1,GLshort green1,GLshort blue1)
{
	static PFNGLSECONDARYCOLOR3SEXTPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLOR3SEXTPROC_HPP>(_impl::_get_proc_address("glSecondaryColor3sEXT","GL_EXT_secondary_color"));
	 fn(red1,green1,blue1);
}
typedef void (*PFNGLSECONDARYCOLOR3SVEXTPROC_HPP)(const GLshort *);
static inline void SecondaryColor3svEXT(const GLshort * v1)
{
	static PFNGLSECONDARYCOLOR3SVEXTPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLOR3SVEXTPROC_HPP>(_impl::_get_proc_address("glSecondaryColor3svEXT","GL_EXT_secondary_color"));
	 fn(v1);
}
typedef void (*PFNGLSECONDARYCOLOR3UBEXTPROC_HPP)(GLubyte,GLubyte,GLubyte);
static inline void SecondaryColor3ubEXT(GLubyte red1,GLubyte green1,GLubyte blue1)
{
	static PFNGLSECONDARYCOLOR3UBEXTPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLOR3UBEXTPROC_HPP>(_impl::_get_proc_address("glSecondaryColor3ubEXT","GL_EXT_secondary_color"));
	 fn(red1,green1,blue1);
}
typedef void (*PFNGLSECONDARYCOLOR3UBVEXTPROC_HPP)(const GLubyte *);
static inline void SecondaryColor3ubvEXT(const GLubyte * v1)
{
	static PFNGLSECONDARYCOLOR3UBVEXTPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLOR3UBVEXTPROC_HPP>(_impl::_get_proc_address("glSecondaryColor3ubvEXT","GL_EXT_secondary_color"));
	 fn(v1);
}
typedef void (*PFNGLSECONDARYCOLOR3UIEXTPROC_HPP)(GLuint,GLuint,GLuint);
static inline void SecondaryColor3uiEXT(GLuint red1,GLuint green1,GLuint blue1)
{
	static PFNGLSECONDARYCOLOR3UIEXTPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLOR3UIEXTPROC_HPP>(_impl::_get_proc_address("glSecondaryColor3uiEXT","GL_EXT_secondary_color"));
	 fn(red1,green1,blue1);
}
typedef void (*PFNGLSECONDARYCOLOR3UIVEXTPROC_HPP)(const GLuint *);
static inline void SecondaryColor3uivEXT(const GLuint * v1)
{
	static PFNGLSECONDARYCOLOR3UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLOR3UIVEXTPROC_HPP>(_impl::_get_proc_address("glSecondaryColor3uivEXT","GL_EXT_secondary_color"));
	 fn(v1);
}
typedef void (*PFNGLSECONDARYCOLOR3USEXTPROC_HPP)(GLushort,GLushort,GLushort);
static inline void SecondaryColor3usEXT(GLushort red1,GLushort green1,GLushort blue1)
{
	static PFNGLSECONDARYCOLOR3USEXTPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLOR3USEXTPROC_HPP>(_impl::_get_proc_address("glSecondaryColor3usEXT","GL_EXT_secondary_color"));
	 fn(red1,green1,blue1);
}
typedef void (*PFNGLSECONDARYCOLOR3USVEXTPROC_HPP)(const GLushort *);
static inline void SecondaryColor3usvEXT(const GLushort * v1)
{
	static PFNGLSECONDARYCOLOR3USVEXTPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLOR3USVEXTPROC_HPP>(_impl::_get_proc_address("glSecondaryColor3usvEXT","GL_EXT_secondary_color"));
	 fn(v1);
}
typedef void (*PFNGLSECONDARYCOLORPOINTEREXTPROC_HPP)(GLint,GLenum,GLsizei,const void *);
static inline void SecondaryColorPointerEXT(GLint size1,GLenum type1,GLsizei stride1,const void * pointer1)
{
	static PFNGLSECONDARYCOLORPOINTEREXTPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLORPOINTEREXTPROC_HPP>(_impl::_get_proc_address("glSecondaryColorPointerEXT","GL_EXT_secondary_color"));
	 fn(size1,type1,stride1,pointer1);
}}
#endif

#ifndef GL_EXT_separate_shader_objects
#define GL_EXT_separate_shader_objects
#ifndef GL_VERTEX_SHADER_BIT_EXT
#define GL_VERTEX_SHADER_BIT_EXT 0x00000001
#endif //GL_VERTEX_SHADER_BIT_EXT
#ifndef GL_FRAGMENT_SHADER_BIT_EXT
#define GL_FRAGMENT_SHADER_BIT_EXT 0x00000002
#endif //GL_FRAGMENT_SHADER_BIT_EXT
#ifndef GL_PROGRAM_SEPARABLE_EXT
#define GL_PROGRAM_SEPARABLE_EXT 0x8258
#endif //GL_PROGRAM_SEPARABLE_EXT
#ifndef GL_PROGRAM_PIPELINE_BINDING_EXT
#define GL_PROGRAM_PIPELINE_BINDING_EXT 0x825A
#endif //GL_PROGRAM_PIPELINE_BINDING_EXT
#ifndef GL_ACTIVE_PROGRAM_EXT
#define GL_ACTIVE_PROGRAM_EXT 0x8B8D
#endif //GL_ACTIVE_PROGRAM_EXT
#ifndef GL_ALL_SHADER_BITS_EXT
#define GL_ALL_SHADER_BITS_EXT 0xFFFFFFFF
#endif //GL_ALL_SHADER_BITS_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLACTIVEPROGRAMEXTPROC_HPP)(GLuint);
static inline void ActiveProgramEXT(GLuint program1)
{
	static PFNGLACTIVEPROGRAMEXTPROC_HPP fn=reinterpret_cast<PFNGLACTIVEPROGRAMEXTPROC_HPP>(_impl::_get_proc_address("glActiveProgramEXT","GL_EXT_separate_shader_objects"));
	 fn(program1);
}
typedef void (*PFNGLACTIVESHADERPROGRAMEXTPROC_HPP)(GLuint,GLuint);
static inline void ActiveShaderProgramEXT(GLuint pipeline1,GLuint program1)
{
	static PFNGLACTIVESHADERPROGRAMEXTPROC_HPP fn=reinterpret_cast<PFNGLACTIVESHADERPROGRAMEXTPROC_HPP>(_impl::_get_proc_address("glActiveShaderProgramEXT","GL_EXT_separate_shader_objects"));
	 fn(pipeline1,program1);
}
typedef void (*PFNGLBINDPROGRAMPIPELINEEXTPROC_HPP)(GLuint);
static inline void BindProgramPipelineEXT(GLuint pipeline1)
{
	static PFNGLBINDPROGRAMPIPELINEEXTPROC_HPP fn=reinterpret_cast<PFNGLBINDPROGRAMPIPELINEEXTPROC_HPP>(_impl::_get_proc_address("glBindProgramPipelineEXT","GL_EXT_separate_shader_objects"));
	 fn(pipeline1);
}
typedef GLuint (*PFNGLCREATESHADERPROGRAMEXTPROC_HPP)(GLenum,const GLchar *);
static inline GLuint CreateShaderProgramEXT(GLenum type1,const GLchar * string1)
{
	static PFNGLCREATESHADERPROGRAMEXTPROC_HPP fn=reinterpret_cast<PFNGLCREATESHADERPROGRAMEXTPROC_HPP>(_impl::_get_proc_address("glCreateShaderProgramEXT","GL_EXT_separate_shader_objects"));
	return fn(type1,string1);
}
typedef GLuint (*PFNGLCREATESHADERPROGRAMVEXTPROC_HPP)(GLenum,GLsizei,const GLchar **);
static inline GLuint CreateShaderProgramvEXT(GLenum type1,GLsizei count1,const GLchar ** strings1)
{
	static PFNGLCREATESHADERPROGRAMVEXTPROC_HPP fn=reinterpret_cast<PFNGLCREATESHADERPROGRAMVEXTPROC_HPP>(_impl::_get_proc_address("glCreateShaderProgramvEXT","GL_EXT_separate_shader_objects"));
	return fn(type1,count1,strings1);
}
typedef void (*PFNGLDELETEPROGRAMPIPELINESEXTPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteProgramPipelinesEXT(GLsizei n1,const GLuint * pipelines1)
{
	static PFNGLDELETEPROGRAMPIPELINESEXTPROC_HPP fn=reinterpret_cast<PFNGLDELETEPROGRAMPIPELINESEXTPROC_HPP>(_impl::_get_proc_address("glDeleteProgramPipelinesEXT","GL_EXT_separate_shader_objects"));
	 fn(n1,pipelines1);
}
typedef void (*PFNGLGENPROGRAMPIPELINESEXTPROC_HPP)(GLsizei,GLuint *);
static inline void GenProgramPipelinesEXT(GLsizei n1,GLuint * pipelines1)
{
	static PFNGLGENPROGRAMPIPELINESEXTPROC_HPP fn=reinterpret_cast<PFNGLGENPROGRAMPIPELINESEXTPROC_HPP>(_impl::_get_proc_address("glGenProgramPipelinesEXT","GL_EXT_separate_shader_objects"));
	 fn(n1,pipelines1);
}
typedef void (*PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC_HPP)(GLuint,GLsizei,GLsizei *,GLchar *);
static inline void GetProgramPipelineInfoLogEXT(GLuint pipeline1,GLsizei bufSize1,GLsizei * length1,GLchar * infoLog1)
{
	static PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC_HPP>(_impl::_get_proc_address("glGetProgramPipelineInfoLogEXT","GL_EXT_separate_shader_objects"));
	 fn(pipeline1,bufSize1,length1,infoLog1);
}
typedef void (*PFNGLGETPROGRAMPIPELINEIVEXTPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetProgramPipelineivEXT(GLuint pipeline1,GLenum pname1,GLint * params1)
{
	static PFNGLGETPROGRAMPIPELINEIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMPIPELINEIVEXTPROC_HPP>(_impl::_get_proc_address("glGetProgramPipelineivEXT","GL_EXT_separate_shader_objects"));
	 fn(pipeline1,pname1,params1);
}
typedef GLboolean (*PFNGLISPROGRAMPIPELINEEXTPROC_HPP)(GLuint);
static inline GLboolean IsProgramPipelineEXT(GLuint pipeline1)
{
	static PFNGLISPROGRAMPIPELINEEXTPROC_HPP fn=reinterpret_cast<PFNGLISPROGRAMPIPELINEEXTPROC_HPP>(_impl::_get_proc_address("glIsProgramPipelineEXT","GL_EXT_separate_shader_objects"));
	return fn(pipeline1);
}
typedef void (*PFNGLPROGRAMPARAMETERIEXTPROC_HPP)(GLuint,GLenum,GLint);
static inline void ProgramParameteriEXT(GLuint program1,GLenum pname1,GLint value1)
{
	static PFNGLPROGRAMPARAMETERIEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMPARAMETERIEXTPROC_HPP>(_impl::_get_proc_address("glProgramParameteriEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,pname1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM1FEXTPROC_HPP)(GLuint,GLint,GLfloat);
static inline void ProgramUniform1fEXT(GLuint program1,GLint location1,GLfloat v01)
{
	static PFNGLPROGRAMUNIFORM1FEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1FEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform1fEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,v01);
}
typedef void (*PFNGLPROGRAMUNIFORM1FVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLfloat *);
static inline void ProgramUniform1fvEXT(GLuint program1,GLint location1,GLsizei count1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORM1FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform1fvEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM1IEXTPROC_HPP)(GLuint,GLint,GLint);
static inline void ProgramUniform1iEXT(GLuint program1,GLint location1,GLint v01)
{
	static PFNGLPROGRAMUNIFORM1IEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1IEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform1iEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,v01);
}
typedef void (*PFNGLPROGRAMUNIFORM1IVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLint *);
static inline void ProgramUniform1ivEXT(GLuint program1,GLint location1,GLsizei count1,const GLint * value1)
{
	static PFNGLPROGRAMUNIFORM1IVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1IVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform1ivEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM1UIEXTPROC_HPP)(GLuint,GLint,GLuint);
static inline void ProgramUniform1uiEXT(GLuint program1,GLint location1,GLuint v01)
{
	static PFNGLPROGRAMUNIFORM1UIEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1UIEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform1uiEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,v01);
}
typedef void (*PFNGLPROGRAMUNIFORM1UIVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLuint *);
static inline void ProgramUniform1uivEXT(GLuint program1,GLint location1,GLsizei count1,const GLuint * value1)
{
	static PFNGLPROGRAMUNIFORM1UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1UIVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform1uivEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM2FEXTPROC_HPP)(GLuint,GLint,GLfloat,GLfloat);
static inline void ProgramUniform2fEXT(GLuint program1,GLint location1,GLfloat v01,GLfloat v11)
{
	static PFNGLPROGRAMUNIFORM2FEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2FEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform2fEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,v01,v11);
}
typedef void (*PFNGLPROGRAMUNIFORM2FVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLfloat *);
static inline void ProgramUniform2fvEXT(GLuint program1,GLint location1,GLsizei count1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORM2FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform2fvEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM2IEXTPROC_HPP)(GLuint,GLint,GLint,GLint);
static inline void ProgramUniform2iEXT(GLuint program1,GLint location1,GLint v01,GLint v11)
{
	static PFNGLPROGRAMUNIFORM2IEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2IEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform2iEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,v01,v11);
}
typedef void (*PFNGLPROGRAMUNIFORM2IVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLint *);
static inline void ProgramUniform2ivEXT(GLuint program1,GLint location1,GLsizei count1,const GLint * value1)
{
	static PFNGLPROGRAMUNIFORM2IVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2IVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform2ivEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM2UIEXTPROC_HPP)(GLuint,GLint,GLuint,GLuint);
static inline void ProgramUniform2uiEXT(GLuint program1,GLint location1,GLuint v01,GLuint v11)
{
	static PFNGLPROGRAMUNIFORM2UIEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2UIEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform2uiEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,v01,v11);
}
typedef void (*PFNGLPROGRAMUNIFORM2UIVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLuint *);
static inline void ProgramUniform2uivEXT(GLuint program1,GLint location1,GLsizei count1,const GLuint * value1)
{
	static PFNGLPROGRAMUNIFORM2UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2UIVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform2uivEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM3FEXTPROC_HPP)(GLuint,GLint,GLfloat,GLfloat,GLfloat);
static inline void ProgramUniform3fEXT(GLuint program1,GLint location1,GLfloat v01,GLfloat v11,GLfloat v21)
{
	static PFNGLPROGRAMUNIFORM3FEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3FEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform3fEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,v01,v11,v21);
}
typedef void (*PFNGLPROGRAMUNIFORM3FVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLfloat *);
static inline void ProgramUniform3fvEXT(GLuint program1,GLint location1,GLsizei count1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORM3FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform3fvEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM3IEXTPROC_HPP)(GLuint,GLint,GLint,GLint,GLint);
static inline void ProgramUniform3iEXT(GLuint program1,GLint location1,GLint v01,GLint v11,GLint v21)
{
	static PFNGLPROGRAMUNIFORM3IEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3IEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform3iEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,v01,v11,v21);
}
typedef void (*PFNGLPROGRAMUNIFORM3IVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLint *);
static inline void ProgramUniform3ivEXT(GLuint program1,GLint location1,GLsizei count1,const GLint * value1)
{
	static PFNGLPROGRAMUNIFORM3IVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3IVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform3ivEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM3UIEXTPROC_HPP)(GLuint,GLint,GLuint,GLuint,GLuint);
static inline void ProgramUniform3uiEXT(GLuint program1,GLint location1,GLuint v01,GLuint v11,GLuint v21)
{
	static PFNGLPROGRAMUNIFORM3UIEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3UIEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform3uiEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,v01,v11,v21);
}
typedef void (*PFNGLPROGRAMUNIFORM3UIVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLuint *);
static inline void ProgramUniform3uivEXT(GLuint program1,GLint location1,GLsizei count1,const GLuint * value1)
{
	static PFNGLPROGRAMUNIFORM3UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3UIVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform3uivEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM4FEXTPROC_HPP)(GLuint,GLint,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void ProgramUniform4fEXT(GLuint program1,GLint location1,GLfloat v01,GLfloat v11,GLfloat v21,GLfloat v31)
{
	static PFNGLPROGRAMUNIFORM4FEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4FEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform4fEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,v01,v11,v21,v31);
}
typedef void (*PFNGLPROGRAMUNIFORM4FVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLfloat *);
static inline void ProgramUniform4fvEXT(GLuint program1,GLint location1,GLsizei count1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORM4FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform4fvEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM4IEXTPROC_HPP)(GLuint,GLint,GLint,GLint,GLint,GLint);
static inline void ProgramUniform4iEXT(GLuint program1,GLint location1,GLint v01,GLint v11,GLint v21,GLint v31)
{
	static PFNGLPROGRAMUNIFORM4IEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4IEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform4iEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,v01,v11,v21,v31);
}
typedef void (*PFNGLPROGRAMUNIFORM4IVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLint *);
static inline void ProgramUniform4ivEXT(GLuint program1,GLint location1,GLsizei count1,const GLint * value1)
{
	static PFNGLPROGRAMUNIFORM4IVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4IVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform4ivEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM4UIEXTPROC_HPP)(GLuint,GLint,GLuint,GLuint,GLuint,GLuint);
static inline void ProgramUniform4uiEXT(GLuint program1,GLint location1,GLuint v01,GLuint v11,GLuint v21,GLuint v31)
{
	static PFNGLPROGRAMUNIFORM4UIEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4UIEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform4uiEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,v01,v11,v21,v31);
}
typedef void (*PFNGLPROGRAMUNIFORM4UIVEXTPROC_HPP)(GLuint,GLint,GLsizei,const GLuint *);
static inline void ProgramUniform4uivEXT(GLuint program1,GLint location1,GLsizei count1,const GLuint * value1)
{
	static PFNGLPROGRAMUNIFORM4UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4UIVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniform4uivEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix2fvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix2fvEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix2x3fvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix2x3fvEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix2x4fvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix2x4fvEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix3fvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix3fvEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix3x2fvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix3x2fvEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix3x4fvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix3x4fvEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix4fvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix4fvEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix4x2fvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix4x2fvEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC_HPP)(GLuint,GLint,GLsizei,GLboolean,const GLfloat *);
static inline void ProgramUniformMatrix4x3fvEXT(GLuint program1,GLint location1,GLsizei count1,GLboolean transpose1,const GLfloat * value1)
{
	static PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC_HPP>(_impl::_get_proc_address("glProgramUniformMatrix4x3fvEXT","GL_EXT_separate_shader_objects"));
	 fn(program1,location1,count1,transpose1,value1);
}
typedef void (*PFNGLUSEPROGRAMSTAGESEXTPROC_HPP)(GLuint,GLbitfield,GLuint);
static inline void UseProgramStagesEXT(GLuint pipeline1,GLbitfield stages1,GLuint program1)
{
	static PFNGLUSEPROGRAMSTAGESEXTPROC_HPP fn=reinterpret_cast<PFNGLUSEPROGRAMSTAGESEXTPROC_HPP>(_impl::_get_proc_address("glUseProgramStagesEXT","GL_EXT_separate_shader_objects"));
	 fn(pipeline1,stages1,program1);
}
typedef void (*PFNGLUSESHADERPROGRAMEXTPROC_HPP)(GLenum,GLuint);
static inline void UseShaderProgramEXT(GLenum type1,GLuint program1)
{
	static PFNGLUSESHADERPROGRAMEXTPROC_HPP fn=reinterpret_cast<PFNGLUSESHADERPROGRAMEXTPROC_HPP>(_impl::_get_proc_address("glUseShaderProgramEXT","GL_EXT_separate_shader_objects"));
	 fn(type1,program1);
}
typedef void (*PFNGLVALIDATEPROGRAMPIPELINEEXTPROC_HPP)(GLuint);
static inline void ValidateProgramPipelineEXT(GLuint pipeline1)
{
	static PFNGLVALIDATEPROGRAMPIPELINEEXTPROC_HPP fn=reinterpret_cast<PFNGLVALIDATEPROGRAMPIPELINEEXTPROC_HPP>(_impl::_get_proc_address("glValidateProgramPipelineEXT","GL_EXT_separate_shader_objects"));
	 fn(pipeline1);
}}
#endif

#ifndef GL_EXT_separate_specular_color
#define GL_EXT_separate_specular_color
#ifndef GL_LIGHT_MODEL_COLOR_CONTROL_EXT
#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8
#endif //GL_LIGHT_MODEL_COLOR_CONTROL_EXT
#ifndef GL_SINGLE_COLOR_EXT
#define GL_SINGLE_COLOR_EXT 0x81F9
#endif //GL_SINGLE_COLOR_EXT
#ifndef GL_SEPARATE_SPECULAR_COLOR_EXT
#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA
#endif //GL_SEPARATE_SPECULAR_COLOR_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_shader_image_load_formatted
#define GL_EXT_shader_image_load_formatted
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_shader_image_load_store
#define GL_EXT_shader_image_load_store
#ifndef GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT
#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001
#endif //GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT
#ifndef GL_ELEMENT_ARRAY_BARRIER_BIT_EXT
#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002
#endif //GL_ELEMENT_ARRAY_BARRIER_BIT_EXT
#ifndef GL_UNIFORM_BARRIER_BIT_EXT
#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004
#endif //GL_UNIFORM_BARRIER_BIT_EXT
#ifndef GL_TEXTURE_FETCH_BARRIER_BIT_EXT
#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008
#endif //GL_TEXTURE_FETCH_BARRIER_BIT_EXT
#ifndef GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT
#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020
#endif //GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT
#ifndef GL_COMMAND_BARRIER_BIT_EXT
#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040
#endif //GL_COMMAND_BARRIER_BIT_EXT
#ifndef GL_PIXEL_BUFFER_BARRIER_BIT_EXT
#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080
#endif //GL_PIXEL_BUFFER_BARRIER_BIT_EXT
#ifndef GL_TEXTURE_UPDATE_BARRIER_BIT_EXT
#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100
#endif //GL_TEXTURE_UPDATE_BARRIER_BIT_EXT
#ifndef GL_BUFFER_UPDATE_BARRIER_BIT_EXT
#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200
#endif //GL_BUFFER_UPDATE_BARRIER_BIT_EXT
#ifndef GL_FRAMEBUFFER_BARRIER_BIT_EXT
#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400
#endif //GL_FRAMEBUFFER_BARRIER_BIT_EXT
#ifndef GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT
#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800
#endif //GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT
#ifndef GL_ATOMIC_COUNTER_BARRIER_BIT_EXT
#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000
#endif //GL_ATOMIC_COUNTER_BARRIER_BIT_EXT
#ifndef GL_MAX_IMAGE_UNITS_EXT
#define GL_MAX_IMAGE_UNITS_EXT 0x8F38
#endif //GL_MAX_IMAGE_UNITS_EXT
#ifndef GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT
#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39
#endif //GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT
#ifndef GL_IMAGE_BINDING_NAME_EXT
#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A
#endif //GL_IMAGE_BINDING_NAME_EXT
#ifndef GL_IMAGE_BINDING_LEVEL_EXT
#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B
#endif //GL_IMAGE_BINDING_LEVEL_EXT
#ifndef GL_IMAGE_BINDING_LAYERED_EXT
#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C
#endif //GL_IMAGE_BINDING_LAYERED_EXT
#ifndef GL_IMAGE_BINDING_LAYER_EXT
#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D
#endif //GL_IMAGE_BINDING_LAYER_EXT
#ifndef GL_IMAGE_BINDING_ACCESS_EXT
#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E
#endif //GL_IMAGE_BINDING_ACCESS_EXT
#ifndef GL_IMAGE_1D_EXT
#define GL_IMAGE_1D_EXT 0x904C
#endif //GL_IMAGE_1D_EXT
#ifndef GL_IMAGE_2D_EXT
#define GL_IMAGE_2D_EXT 0x904D
#endif //GL_IMAGE_2D_EXT
#ifndef GL_IMAGE_3D_EXT
#define GL_IMAGE_3D_EXT 0x904E
#endif //GL_IMAGE_3D_EXT
#ifndef GL_IMAGE_2D_RECT_EXT
#define GL_IMAGE_2D_RECT_EXT 0x904F
#endif //GL_IMAGE_2D_RECT_EXT
#ifndef GL_IMAGE_CUBE_EXT
#define GL_IMAGE_CUBE_EXT 0x9050
#endif //GL_IMAGE_CUBE_EXT
#ifndef GL_IMAGE_BUFFER_EXT
#define GL_IMAGE_BUFFER_EXT 0x9051
#endif //GL_IMAGE_BUFFER_EXT
#ifndef GL_IMAGE_1D_ARRAY_EXT
#define GL_IMAGE_1D_ARRAY_EXT 0x9052
#endif //GL_IMAGE_1D_ARRAY_EXT
#ifndef GL_IMAGE_2D_ARRAY_EXT
#define GL_IMAGE_2D_ARRAY_EXT 0x9053
#endif //GL_IMAGE_2D_ARRAY_EXT
#ifndef GL_IMAGE_CUBE_MAP_ARRAY_EXT
#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054
#endif //GL_IMAGE_CUBE_MAP_ARRAY_EXT
#ifndef GL_IMAGE_2D_MULTISAMPLE_EXT
#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055
#endif //GL_IMAGE_2D_MULTISAMPLE_EXT
#ifndef GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT
#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056
#endif //GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT
#ifndef GL_INT_IMAGE_1D_EXT
#define GL_INT_IMAGE_1D_EXT 0x9057
#endif //GL_INT_IMAGE_1D_EXT
#ifndef GL_INT_IMAGE_2D_EXT
#define GL_INT_IMAGE_2D_EXT 0x9058
#endif //GL_INT_IMAGE_2D_EXT
#ifndef GL_INT_IMAGE_3D_EXT
#define GL_INT_IMAGE_3D_EXT 0x9059
#endif //GL_INT_IMAGE_3D_EXT
#ifndef GL_INT_IMAGE_2D_RECT_EXT
#define GL_INT_IMAGE_2D_RECT_EXT 0x905A
#endif //GL_INT_IMAGE_2D_RECT_EXT
#ifndef GL_INT_IMAGE_CUBE_EXT
#define GL_INT_IMAGE_CUBE_EXT 0x905B
#endif //GL_INT_IMAGE_CUBE_EXT
#ifndef GL_INT_IMAGE_BUFFER_EXT
#define GL_INT_IMAGE_BUFFER_EXT 0x905C
#endif //GL_INT_IMAGE_BUFFER_EXT
#ifndef GL_INT_IMAGE_1D_ARRAY_EXT
#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D
#endif //GL_INT_IMAGE_1D_ARRAY_EXT
#ifndef GL_INT_IMAGE_2D_ARRAY_EXT
#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E
#endif //GL_INT_IMAGE_2D_ARRAY_EXT
#ifndef GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT
#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F
#endif //GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT
#ifndef GL_INT_IMAGE_2D_MULTISAMPLE_EXT
#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060
#endif //GL_INT_IMAGE_2D_MULTISAMPLE_EXT
#ifndef GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT
#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061
#endif //GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT
#ifndef GL_UNSIGNED_INT_IMAGE_1D_EXT
#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062
#endif //GL_UNSIGNED_INT_IMAGE_1D_EXT
#ifndef GL_UNSIGNED_INT_IMAGE_2D_EXT
#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063
#endif //GL_UNSIGNED_INT_IMAGE_2D_EXT
#ifndef GL_UNSIGNED_INT_IMAGE_3D_EXT
#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064
#endif //GL_UNSIGNED_INT_IMAGE_3D_EXT
#ifndef GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT
#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065
#endif //GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT
#ifndef GL_UNSIGNED_INT_IMAGE_CUBE_EXT
#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066
#endif //GL_UNSIGNED_INT_IMAGE_CUBE_EXT
#ifndef GL_UNSIGNED_INT_IMAGE_BUFFER_EXT
#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067
#endif //GL_UNSIGNED_INT_IMAGE_BUFFER_EXT
#ifndef GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT
#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068
#endif //GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT
#ifndef GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT
#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069
#endif //GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT
#ifndef GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT
#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A
#endif //GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT
#ifndef GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT
#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B
#endif //GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT
#ifndef GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT
#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C
#endif //GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT
#ifndef GL_MAX_IMAGE_SAMPLES_EXT
#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D
#endif //GL_MAX_IMAGE_SAMPLES_EXT
#ifndef GL_IMAGE_BINDING_FORMAT_EXT
#define GL_IMAGE_BINDING_FORMAT_EXT 0x906E
#endif //GL_IMAGE_BINDING_FORMAT_EXT
#ifndef GL_ALL_BARRIER_BITS_EXT
#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF
#endif //GL_ALL_BARRIER_BITS_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDIMAGETEXTUREEXTPROC_HPP)(GLuint,GLuint,GLint,GLboolean,GLint,GLenum,GLint);
static inline void BindImageTextureEXT(GLuint index1,GLuint texture1,GLint level1,GLboolean layered1,GLint layer1,GLenum access1,GLint format1)
{
	static PFNGLBINDIMAGETEXTUREEXTPROC_HPP fn=reinterpret_cast<PFNGLBINDIMAGETEXTUREEXTPROC_HPP>(_impl::_get_proc_address("glBindImageTextureEXT","GL_EXT_shader_image_load_store"));
	 fn(index1,texture1,level1,layered1,layer1,access1,format1);
}
typedef void (*PFNGLMEMORYBARRIEREXTPROC_HPP)(GLbitfield);
static inline void MemoryBarrierEXT(GLbitfield barriers1)
{
	static PFNGLMEMORYBARRIEREXTPROC_HPP fn=reinterpret_cast<PFNGLMEMORYBARRIEREXTPROC_HPP>(_impl::_get_proc_address("glMemoryBarrierEXT","GL_EXT_shader_image_load_store"));
	 fn(barriers1);
}}
#endif

#ifndef GL_EXT_shader_integer_mix
#define GL_EXT_shader_integer_mix
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_shadow_funcs
#define GL_EXT_shadow_funcs
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_shared_texture_palette
#define GL_EXT_shared_texture_palette
#ifndef GL_SHARED_TEXTURE_PALETTE_EXT
#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB
#endif //GL_SHARED_TEXTURE_PALETTE_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_stencil_clear_tag
#define GL_EXT_stencil_clear_tag
#ifndef GL_STENCIL_TAG_BITS_EXT
#define GL_STENCIL_TAG_BITS_EXT 0x88F2
#endif //GL_STENCIL_TAG_BITS_EXT
#ifndef GL_STENCIL_CLEAR_TAG_VALUE_EXT
#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3
#endif //GL_STENCIL_CLEAR_TAG_VALUE_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLSTENCILCLEARTAGEXTPROC_HPP)(GLsizei,GLuint);
static inline void StencilClearTagEXT(GLsizei stencilTagBits1,GLuint stencilClearTag1)
{
	static PFNGLSTENCILCLEARTAGEXTPROC_HPP fn=reinterpret_cast<PFNGLSTENCILCLEARTAGEXTPROC_HPP>(_impl::_get_proc_address("glStencilClearTagEXT","GL_EXT_stencil_clear_tag"));
	 fn(stencilTagBits1,stencilClearTag1);
}}
#endif

#ifndef GL_EXT_stencil_two_side
#define GL_EXT_stencil_two_side
#ifndef GL_STENCIL_TEST_TWO_SIDE_EXT
#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910
#endif //GL_STENCIL_TEST_TWO_SIDE_EXT
#ifndef GL_ACTIVE_STENCIL_FACE_EXT
#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911
#endif //GL_ACTIVE_STENCIL_FACE_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLACTIVESTENCILFACEEXTPROC_HPP)(GLenum);
static inline void ActiveStencilFaceEXT(GLenum face1)
{
	static PFNGLACTIVESTENCILFACEEXTPROC_HPP fn=reinterpret_cast<PFNGLACTIVESTENCILFACEEXTPROC_HPP>(_impl::_get_proc_address("glActiveStencilFaceEXT","GL_EXT_stencil_two_side"));
	 fn(face1);
}}
#endif

#ifndef GL_EXT_stencil_wrap
#define GL_EXT_stencil_wrap
#ifndef GL_INCR_WRAP_EXT
#define GL_INCR_WRAP_EXT 0x8507
#endif //GL_INCR_WRAP_EXT
#ifndef GL_DECR_WRAP_EXT
#define GL_DECR_WRAP_EXT 0x8508
#endif //GL_DECR_WRAP_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_subtexture
#define GL_EXT_subtexture
extern "C" {
}
namespace gl{

typedef void (*PFNGLTEXSUBIMAGE1DEXTPROC_HPP)(GLenum,GLint,GLint,GLsizei,GLenum,GLenum,const void *);
static inline void TexSubImage1DEXT(GLenum target1,GLint level1,GLint xoffset1,GLsizei width1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLTEXSUBIMAGE1DEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXSUBIMAGE1DEXTPROC_HPP>(_impl::_get_proc_address("glTexSubImage1DEXT","GL_EXT_subtexture"));
	 fn(target1,level1,xoffset1,width1,format1,type1,pixels1);
}
typedef void (*PFNGLTEXSUBIMAGE2DEXTPROC_HPP)(GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,const void *);
static inline void TexSubImage2DEXT(GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLsizei width1,GLsizei height1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLTEXSUBIMAGE2DEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXSUBIMAGE2DEXTPROC_HPP>(_impl::_get_proc_address("glTexSubImage2DEXT","GL_EXT_subtexture"));
	 fn(target1,level1,xoffset1,yoffset1,width1,height1,format1,type1,pixels1);
}}
#endif

#ifndef GL_EXT_texture
#define GL_EXT_texture
#ifndef GL_ALPHA4_EXT
#define GL_ALPHA4_EXT 0x803B
#endif //GL_ALPHA4_EXT
#ifndef GL_ALPHA8_EXT
#define GL_ALPHA8_EXT 0x803C
#endif //GL_ALPHA8_EXT
#ifndef GL_ALPHA12_EXT
#define GL_ALPHA12_EXT 0x803D
#endif //GL_ALPHA12_EXT
#ifndef GL_ALPHA16_EXT
#define GL_ALPHA16_EXT 0x803E
#endif //GL_ALPHA16_EXT
#ifndef GL_LUMINANCE4_EXT
#define GL_LUMINANCE4_EXT 0x803F
#endif //GL_LUMINANCE4_EXT
#ifndef GL_LUMINANCE8_EXT
#define GL_LUMINANCE8_EXT 0x8040
#endif //GL_LUMINANCE8_EXT
#ifndef GL_LUMINANCE12_EXT
#define GL_LUMINANCE12_EXT 0x8041
#endif //GL_LUMINANCE12_EXT
#ifndef GL_LUMINANCE16_EXT
#define GL_LUMINANCE16_EXT 0x8042
#endif //GL_LUMINANCE16_EXT
#ifndef GL_LUMINANCE4_ALPHA4_EXT
#define GL_LUMINANCE4_ALPHA4_EXT 0x8043
#endif //GL_LUMINANCE4_ALPHA4_EXT
#ifndef GL_LUMINANCE6_ALPHA2_EXT
#define GL_LUMINANCE6_ALPHA2_EXT 0x8044
#endif //GL_LUMINANCE6_ALPHA2_EXT
#ifndef GL_LUMINANCE8_ALPHA8_EXT
#define GL_LUMINANCE8_ALPHA8_EXT 0x8045
#endif //GL_LUMINANCE8_ALPHA8_EXT
#ifndef GL_LUMINANCE12_ALPHA4_EXT
#define GL_LUMINANCE12_ALPHA4_EXT 0x8046
#endif //GL_LUMINANCE12_ALPHA4_EXT
#ifndef GL_LUMINANCE12_ALPHA12_EXT
#define GL_LUMINANCE12_ALPHA12_EXT 0x8047
#endif //GL_LUMINANCE12_ALPHA12_EXT
#ifndef GL_LUMINANCE16_ALPHA16_EXT
#define GL_LUMINANCE16_ALPHA16_EXT 0x8048
#endif //GL_LUMINANCE16_ALPHA16_EXT
#ifndef GL_INTENSITY_EXT
#define GL_INTENSITY_EXT 0x8049
#endif //GL_INTENSITY_EXT
#ifndef GL_INTENSITY4_EXT
#define GL_INTENSITY4_EXT 0x804A
#endif //GL_INTENSITY4_EXT
#ifndef GL_INTENSITY8_EXT
#define GL_INTENSITY8_EXT 0x804B
#endif //GL_INTENSITY8_EXT
#ifndef GL_INTENSITY12_EXT
#define GL_INTENSITY12_EXT 0x804C
#endif //GL_INTENSITY12_EXT
#ifndef GL_INTENSITY16_EXT
#define GL_INTENSITY16_EXT 0x804D
#endif //GL_INTENSITY16_EXT
#ifndef GL_RGB2_EXT
#define GL_RGB2_EXT 0x804E
#endif //GL_RGB2_EXT
#ifndef GL_RGB4_EXT
#define GL_RGB4_EXT 0x804F
#endif //GL_RGB4_EXT
#ifndef GL_RGB5_EXT
#define GL_RGB5_EXT 0x8050
#endif //GL_RGB5_EXT
#ifndef GL_RGB8_EXT
#define GL_RGB8_EXT 0x8051
#endif //GL_RGB8_EXT
#ifndef GL_RGB10_EXT
#define GL_RGB10_EXT 0x8052
#endif //GL_RGB10_EXT
#ifndef GL_RGB12_EXT
#define GL_RGB12_EXT 0x8053
#endif //GL_RGB12_EXT
#ifndef GL_RGB16_EXT
#define GL_RGB16_EXT 0x8054
#endif //GL_RGB16_EXT
#ifndef GL_RGBA2_EXT
#define GL_RGBA2_EXT 0x8055
#endif //GL_RGBA2_EXT
#ifndef GL_RGBA4_EXT
#define GL_RGBA4_EXT 0x8056
#endif //GL_RGBA4_EXT
#ifndef GL_RGB5_A1_EXT
#define GL_RGB5_A1_EXT 0x8057
#endif //GL_RGB5_A1_EXT
#ifndef GL_RGBA8_EXT
#define GL_RGBA8_EXT 0x8058
#endif //GL_RGBA8_EXT
#ifndef GL_RGB10_A2_EXT
#define GL_RGB10_A2_EXT 0x8059
#endif //GL_RGB10_A2_EXT
#ifndef GL_RGBA12_EXT
#define GL_RGBA12_EXT 0x805A
#endif //GL_RGBA12_EXT
#ifndef GL_RGBA16_EXT
#define GL_RGBA16_EXT 0x805B
#endif //GL_RGBA16_EXT
#ifndef GL_TEXTURE_RED_SIZE_EXT
#define GL_TEXTURE_RED_SIZE_EXT 0x805C
#endif //GL_TEXTURE_RED_SIZE_EXT
#ifndef GL_TEXTURE_GREEN_SIZE_EXT
#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D
#endif //GL_TEXTURE_GREEN_SIZE_EXT
#ifndef GL_TEXTURE_BLUE_SIZE_EXT
#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E
#endif //GL_TEXTURE_BLUE_SIZE_EXT
#ifndef GL_TEXTURE_ALPHA_SIZE_EXT
#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F
#endif //GL_TEXTURE_ALPHA_SIZE_EXT
#ifndef GL_TEXTURE_LUMINANCE_SIZE_EXT
#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060
#endif //GL_TEXTURE_LUMINANCE_SIZE_EXT
#ifndef GL_TEXTURE_INTENSITY_SIZE_EXT
#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061
#endif //GL_TEXTURE_INTENSITY_SIZE_EXT
#ifndef GL_REPLACE_EXT
#define GL_REPLACE_EXT 0x8062
#endif //GL_REPLACE_EXT
#ifndef GL_PROXY_TEXTURE_1D_EXT
#define GL_PROXY_TEXTURE_1D_EXT 0x8063
#endif //GL_PROXY_TEXTURE_1D_EXT
#ifndef GL_PROXY_TEXTURE_2D_EXT
#define GL_PROXY_TEXTURE_2D_EXT 0x8064
#endif //GL_PROXY_TEXTURE_2D_EXT
#ifndef GL_TEXTURE_TOO_LARGE_EXT
#define GL_TEXTURE_TOO_LARGE_EXT 0x8065
#endif //GL_TEXTURE_TOO_LARGE_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_texture3D
#define GL_EXT_texture3D
#ifndef GL_PACK_SKIP_IMAGES_EXT
#define GL_PACK_SKIP_IMAGES_EXT 0x806B
#endif //GL_PACK_SKIP_IMAGES_EXT
#ifndef GL_PACK_IMAGE_HEIGHT_EXT
#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C
#endif //GL_PACK_IMAGE_HEIGHT_EXT
#ifndef GL_UNPACK_SKIP_IMAGES_EXT
#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D
#endif //GL_UNPACK_SKIP_IMAGES_EXT
#ifndef GL_UNPACK_IMAGE_HEIGHT_EXT
#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E
#endif //GL_UNPACK_IMAGE_HEIGHT_EXT
#ifndef GL_TEXTURE_3D_EXT
#define GL_TEXTURE_3D_EXT 0x806F
#endif //GL_TEXTURE_3D_EXT
#ifndef GL_PROXY_TEXTURE_3D_EXT
#define GL_PROXY_TEXTURE_3D_EXT 0x8070
#endif //GL_PROXY_TEXTURE_3D_EXT
#ifndef GL_TEXTURE_DEPTH_EXT
#define GL_TEXTURE_DEPTH_EXT 0x8071
#endif //GL_TEXTURE_DEPTH_EXT
#ifndef GL_TEXTURE_WRAP_R_EXT
#define GL_TEXTURE_WRAP_R_EXT 0x8072
#endif //GL_TEXTURE_WRAP_R_EXT
#ifndef GL_MAX_3D_TEXTURE_SIZE_EXT
#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073
#endif //GL_MAX_3D_TEXTURE_SIZE_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLTEXIMAGE3DEXTPROC_HPP)(GLenum,GLint,GLenum,GLsizei,GLsizei,GLsizei,GLint,GLenum,GLenum,const void *);
static inline void TexImage3DEXT(GLenum target1,GLint level1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLsizei depth1,GLint border1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLTEXIMAGE3DEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXIMAGE3DEXTPROC_HPP>(_impl::_get_proc_address("glTexImage3DEXT","GL_EXT_texture3D"));
	 fn(target1,level1,internalformat1,width1,height1,depth1,border1,format1,type1,pixels1);
}
typedef void (*PFNGLTEXSUBIMAGE3DEXTPROC_HPP)(GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLenum,const void *);
static inline void TexSubImage3DEXT(GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLsizei width1,GLsizei height1,GLsizei depth1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLTEXSUBIMAGE3DEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXSUBIMAGE3DEXTPROC_HPP>(_impl::_get_proc_address("glTexSubImage3DEXT","GL_EXT_texture3D"));
	 fn(target1,level1,xoffset1,yoffset1,zoffset1,width1,height1,depth1,format1,type1,pixels1);
}}
#endif

#ifndef GL_EXT_texture_array
#define GL_EXT_texture_array
#ifndef GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT
#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E
#endif //GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT
#ifndef GL_MAX_ARRAY_TEXTURE_LAYERS_EXT
#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF
#endif //GL_MAX_ARRAY_TEXTURE_LAYERS_EXT
#ifndef GL_TEXTURE_1D_ARRAY_EXT
#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18
#endif //GL_TEXTURE_1D_ARRAY_EXT
#ifndef GL_PROXY_TEXTURE_1D_ARRAY_EXT
#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19
#endif //GL_PROXY_TEXTURE_1D_ARRAY_EXT
#ifndef GL_TEXTURE_2D_ARRAY_EXT
#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A
#endif //GL_TEXTURE_2D_ARRAY_EXT
#ifndef GL_PROXY_TEXTURE_2D_ARRAY_EXT
#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B
#endif //GL_PROXY_TEXTURE_2D_ARRAY_EXT
#ifndef GL_TEXTURE_BINDING_1D_ARRAY_EXT
#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C
#endif //GL_TEXTURE_BINDING_1D_ARRAY_EXT
#ifndef GL_TEXTURE_BINDING_2D_ARRAY_EXT
#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D
#endif //GL_TEXTURE_BINDING_2D_ARRAY_EXT
#ifndef GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4
#endif //GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC_HPP)(GLenum,GLenum,GLuint,GLint,GLint);
static inline void FramebufferTextureLayerEXT(GLenum target1,GLenum attachment1,GLuint texture1,GLint level1,GLint layer1)
{
	static PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC_HPP>(_impl::_get_proc_address("glFramebufferTextureLayerEXT","GL_EXT_texture_array"));
	 fn(target1,attachment1,texture1,level1,layer1);
}}
#endif

#ifndef GL_EXT_texture_buffer_object
#define GL_EXT_texture_buffer_object
#ifndef GL_TEXTURE_BUFFER_EXT
#define GL_TEXTURE_BUFFER_EXT 0x8C2A
#endif //GL_TEXTURE_BUFFER_EXT
#ifndef GL_MAX_TEXTURE_BUFFER_SIZE_EXT
#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B
#endif //GL_MAX_TEXTURE_BUFFER_SIZE_EXT
#ifndef GL_TEXTURE_BINDING_BUFFER_EXT
#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C
#endif //GL_TEXTURE_BINDING_BUFFER_EXT
#ifndef GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT
#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D
#endif //GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT
#ifndef GL_TEXTURE_BUFFER_FORMAT_EXT
#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E
#endif //GL_TEXTURE_BUFFER_FORMAT_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLTEXBUFFEREXTPROC_HPP)(GLenum,GLenum,GLuint);
static inline void TexBufferEXT(GLenum target1,GLenum internalformat1,GLuint buffer1)
{
	static PFNGLTEXBUFFEREXTPROC_HPP fn=reinterpret_cast<PFNGLTEXBUFFEREXTPROC_HPP>(_impl::_get_proc_address("glTexBufferEXT","GL_EXT_texture_buffer_object"));
	 fn(target1,internalformat1,buffer1);
}}
#endif

#ifndef GL_EXT_texture_compression_latc
#define GL_EXT_texture_compression_latc
#ifndef GL_COMPRESSED_LUMINANCE_LATC1_EXT
#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70
#endif //GL_COMPRESSED_LUMINANCE_LATC1_EXT
#ifndef GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT
#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71
#endif //GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT
#ifndef GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT
#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72
#endif //GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT
#ifndef GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT
#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73
#endif //GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_texture_compression_rgtc
#define GL_EXT_texture_compression_rgtc
#ifndef GL_COMPRESSED_RED_RGTC1_EXT
#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB
#endif //GL_COMPRESSED_RED_RGTC1_EXT
#ifndef GL_COMPRESSED_SIGNED_RED_RGTC1_EXT
#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC
#endif //GL_COMPRESSED_SIGNED_RED_RGTC1_EXT
#ifndef GL_COMPRESSED_RED_GREEN_RGTC2_EXT
#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD
#endif //GL_COMPRESSED_RED_GREEN_RGTC2_EXT
#ifndef GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE
#endif //GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_texture_compression_s3tc
#define GL_EXT_texture_compression_s3tc
#ifndef GL_COMPRESSED_RGB_S3TC_DXT1_EXT
#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
#endif //GL_COMPRESSED_RGB_S3TC_DXT1_EXT
#ifndef GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
#endif //GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
#ifndef GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
#endif //GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
#ifndef GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
#endif //GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_texture_cube_map
#define GL_EXT_texture_cube_map
#ifndef GL_NORMAL_MAP_EXT
#define GL_NORMAL_MAP_EXT 0x8511
#endif //GL_NORMAL_MAP_EXT
#ifndef GL_REFLECTION_MAP_EXT
#define GL_REFLECTION_MAP_EXT 0x8512
#endif //GL_REFLECTION_MAP_EXT
#ifndef GL_TEXTURE_CUBE_MAP_EXT
#define GL_TEXTURE_CUBE_MAP_EXT 0x8513
#endif //GL_TEXTURE_CUBE_MAP_EXT
#ifndef GL_TEXTURE_BINDING_CUBE_MAP_EXT
#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514
#endif //GL_TEXTURE_BINDING_CUBE_MAP_EXT
#ifndef GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515
#endif //GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT
#ifndef GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516
#endif //GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT
#ifndef GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517
#endif //GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT
#ifndef GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518
#endif //GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT
#ifndef GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519
#endif //GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT
#ifndef GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A
#endif //GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT
#ifndef GL_PROXY_TEXTURE_CUBE_MAP_EXT
#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B
#endif //GL_PROXY_TEXTURE_CUBE_MAP_EXT
#ifndef GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT
#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C
#endif //GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_texture_env_add
#define GL_EXT_texture_env_add
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_texture_env_combine
#define GL_EXT_texture_env_combine
#ifndef GL_COMBINE_EXT
#define GL_COMBINE_EXT 0x8570
#endif //GL_COMBINE_EXT
#ifndef GL_COMBINE_RGB_EXT
#define GL_COMBINE_RGB_EXT 0x8571
#endif //GL_COMBINE_RGB_EXT
#ifndef GL_COMBINE_ALPHA_EXT
#define GL_COMBINE_ALPHA_EXT 0x8572
#endif //GL_COMBINE_ALPHA_EXT
#ifndef GL_RGB_SCALE_EXT
#define GL_RGB_SCALE_EXT 0x8573
#endif //GL_RGB_SCALE_EXT
#ifndef GL_ADD_SIGNED_EXT
#define GL_ADD_SIGNED_EXT 0x8574
#endif //GL_ADD_SIGNED_EXT
#ifndef GL_INTERPOLATE_EXT
#define GL_INTERPOLATE_EXT 0x8575
#endif //GL_INTERPOLATE_EXT
#ifndef GL_CONSTANT_EXT
#define GL_CONSTANT_EXT 0x8576
#endif //GL_CONSTANT_EXT
#ifndef GL_PRIMARY_COLOR_EXT
#define GL_PRIMARY_COLOR_EXT 0x8577
#endif //GL_PRIMARY_COLOR_EXT
#ifndef GL_PREVIOUS_EXT
#define GL_PREVIOUS_EXT 0x8578
#endif //GL_PREVIOUS_EXT
#ifndef GL_SOURCE0_RGB_EXT
#define GL_SOURCE0_RGB_EXT 0x8580
#endif //GL_SOURCE0_RGB_EXT
#ifndef GL_SOURCE1_RGB_EXT
#define GL_SOURCE1_RGB_EXT 0x8581
#endif //GL_SOURCE1_RGB_EXT
#ifndef GL_SOURCE2_RGB_EXT
#define GL_SOURCE2_RGB_EXT 0x8582
#endif //GL_SOURCE2_RGB_EXT
#ifndef GL_SOURCE0_ALPHA_EXT
#define GL_SOURCE0_ALPHA_EXT 0x8588
#endif //GL_SOURCE0_ALPHA_EXT
#ifndef GL_SOURCE1_ALPHA_EXT
#define GL_SOURCE1_ALPHA_EXT 0x8589
#endif //GL_SOURCE1_ALPHA_EXT
#ifndef GL_SOURCE2_ALPHA_EXT
#define GL_SOURCE2_ALPHA_EXT 0x858A
#endif //GL_SOURCE2_ALPHA_EXT
#ifndef GL_OPERAND0_RGB_EXT
#define GL_OPERAND0_RGB_EXT 0x8590
#endif //GL_OPERAND0_RGB_EXT
#ifndef GL_OPERAND1_RGB_EXT
#define GL_OPERAND1_RGB_EXT 0x8591
#endif //GL_OPERAND1_RGB_EXT
#ifndef GL_OPERAND2_RGB_EXT
#define GL_OPERAND2_RGB_EXT 0x8592
#endif //GL_OPERAND2_RGB_EXT
#ifndef GL_OPERAND0_ALPHA_EXT
#define GL_OPERAND0_ALPHA_EXT 0x8598
#endif //GL_OPERAND0_ALPHA_EXT
#ifndef GL_OPERAND1_ALPHA_EXT
#define GL_OPERAND1_ALPHA_EXT 0x8599
#endif //GL_OPERAND1_ALPHA_EXT
#ifndef GL_OPERAND2_ALPHA_EXT
#define GL_OPERAND2_ALPHA_EXT 0x859A
#endif //GL_OPERAND2_ALPHA_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_texture_env_dot3
#define GL_EXT_texture_env_dot3
#ifndef GL_DOT3_RGB_EXT
#define GL_DOT3_RGB_EXT 0x8740
#endif //GL_DOT3_RGB_EXT
#ifndef GL_DOT3_RGBA_EXT
#define GL_DOT3_RGBA_EXT 0x8741
#endif //GL_DOT3_RGBA_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_texture_filter_anisotropic
#define GL_EXT_texture_filter_anisotropic
#ifndef GL_TEXTURE_MAX_ANISOTROPY_EXT
#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
#endif //GL_TEXTURE_MAX_ANISOTROPY_EXT
#ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
#endif //GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_texture_integer
#define GL_EXT_texture_integer
#ifndef GL_RGBA32UI_EXT
#define GL_RGBA32UI_EXT 0x8D70
#endif //GL_RGBA32UI_EXT
#ifndef GL_RGB32UI_EXT
#define GL_RGB32UI_EXT 0x8D71
#endif //GL_RGB32UI_EXT
#ifndef GL_ALPHA32UI_EXT
#define GL_ALPHA32UI_EXT 0x8D72
#endif //GL_ALPHA32UI_EXT
#ifndef GL_INTENSITY32UI_EXT
#define GL_INTENSITY32UI_EXT 0x8D73
#endif //GL_INTENSITY32UI_EXT
#ifndef GL_LUMINANCE32UI_EXT
#define GL_LUMINANCE32UI_EXT 0x8D74
#endif //GL_LUMINANCE32UI_EXT
#ifndef GL_LUMINANCE_ALPHA32UI_EXT
#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75
#endif //GL_LUMINANCE_ALPHA32UI_EXT
#ifndef GL_RGBA16UI_EXT
#define GL_RGBA16UI_EXT 0x8D76
#endif //GL_RGBA16UI_EXT
#ifndef GL_RGB16UI_EXT
#define GL_RGB16UI_EXT 0x8D77
#endif //GL_RGB16UI_EXT
#ifndef GL_ALPHA16UI_EXT
#define GL_ALPHA16UI_EXT 0x8D78
#endif //GL_ALPHA16UI_EXT
#ifndef GL_INTENSITY16UI_EXT
#define GL_INTENSITY16UI_EXT 0x8D79
#endif //GL_INTENSITY16UI_EXT
#ifndef GL_LUMINANCE16UI_EXT
#define GL_LUMINANCE16UI_EXT 0x8D7A
#endif //GL_LUMINANCE16UI_EXT
#ifndef GL_LUMINANCE_ALPHA16UI_EXT
#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B
#endif //GL_LUMINANCE_ALPHA16UI_EXT
#ifndef GL_RGBA8UI_EXT
#define GL_RGBA8UI_EXT 0x8D7C
#endif //GL_RGBA8UI_EXT
#ifndef GL_RGB8UI_EXT
#define GL_RGB8UI_EXT 0x8D7D
#endif //GL_RGB8UI_EXT
#ifndef GL_ALPHA8UI_EXT
#define GL_ALPHA8UI_EXT 0x8D7E
#endif //GL_ALPHA8UI_EXT
#ifndef GL_INTENSITY8UI_EXT
#define GL_INTENSITY8UI_EXT 0x8D7F
#endif //GL_INTENSITY8UI_EXT
#ifndef GL_LUMINANCE8UI_EXT
#define GL_LUMINANCE8UI_EXT 0x8D80
#endif //GL_LUMINANCE8UI_EXT
#ifndef GL_LUMINANCE_ALPHA8UI_EXT
#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81
#endif //GL_LUMINANCE_ALPHA8UI_EXT
#ifndef GL_RGBA32I_EXT
#define GL_RGBA32I_EXT 0x8D82
#endif //GL_RGBA32I_EXT
#ifndef GL_RGB32I_EXT
#define GL_RGB32I_EXT 0x8D83
#endif //GL_RGB32I_EXT
#ifndef GL_ALPHA32I_EXT
#define GL_ALPHA32I_EXT 0x8D84
#endif //GL_ALPHA32I_EXT
#ifndef GL_INTENSITY32I_EXT
#define GL_INTENSITY32I_EXT 0x8D85
#endif //GL_INTENSITY32I_EXT
#ifndef GL_LUMINANCE32I_EXT
#define GL_LUMINANCE32I_EXT 0x8D86
#endif //GL_LUMINANCE32I_EXT
#ifndef GL_LUMINANCE_ALPHA32I_EXT
#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87
#endif //GL_LUMINANCE_ALPHA32I_EXT
#ifndef GL_RGBA16I_EXT
#define GL_RGBA16I_EXT 0x8D88
#endif //GL_RGBA16I_EXT
#ifndef GL_RGB16I_EXT
#define GL_RGB16I_EXT 0x8D89
#endif //GL_RGB16I_EXT
#ifndef GL_ALPHA16I_EXT
#define GL_ALPHA16I_EXT 0x8D8A
#endif //GL_ALPHA16I_EXT
#ifndef GL_INTENSITY16I_EXT
#define GL_INTENSITY16I_EXT 0x8D8B
#endif //GL_INTENSITY16I_EXT
#ifndef GL_LUMINANCE16I_EXT
#define GL_LUMINANCE16I_EXT 0x8D8C
#endif //GL_LUMINANCE16I_EXT
#ifndef GL_LUMINANCE_ALPHA16I_EXT
#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D
#endif //GL_LUMINANCE_ALPHA16I_EXT
#ifndef GL_RGBA8I_EXT
#define GL_RGBA8I_EXT 0x8D8E
#endif //GL_RGBA8I_EXT
#ifndef GL_RGB8I_EXT
#define GL_RGB8I_EXT 0x8D8F
#endif //GL_RGB8I_EXT
#ifndef GL_ALPHA8I_EXT
#define GL_ALPHA8I_EXT 0x8D90
#endif //GL_ALPHA8I_EXT
#ifndef GL_INTENSITY8I_EXT
#define GL_INTENSITY8I_EXT 0x8D91
#endif //GL_INTENSITY8I_EXT
#ifndef GL_LUMINANCE8I_EXT
#define GL_LUMINANCE8I_EXT 0x8D92
#endif //GL_LUMINANCE8I_EXT
#ifndef GL_LUMINANCE_ALPHA8I_EXT
#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93
#endif //GL_LUMINANCE_ALPHA8I_EXT
#ifndef GL_RED_INTEGER_EXT
#define GL_RED_INTEGER_EXT 0x8D94
#endif //GL_RED_INTEGER_EXT
#ifndef GL_GREEN_INTEGER_EXT
#define GL_GREEN_INTEGER_EXT 0x8D95
#endif //GL_GREEN_INTEGER_EXT
#ifndef GL_BLUE_INTEGER_EXT
#define GL_BLUE_INTEGER_EXT 0x8D96
#endif //GL_BLUE_INTEGER_EXT
#ifndef GL_ALPHA_INTEGER_EXT
#define GL_ALPHA_INTEGER_EXT 0x8D97
#endif //GL_ALPHA_INTEGER_EXT
#ifndef GL_RGB_INTEGER_EXT
#define GL_RGB_INTEGER_EXT 0x8D98
#endif //GL_RGB_INTEGER_EXT
#ifndef GL_RGBA_INTEGER_EXT
#define GL_RGBA_INTEGER_EXT 0x8D99
#endif //GL_RGBA_INTEGER_EXT
#ifndef GL_BGR_INTEGER_EXT
#define GL_BGR_INTEGER_EXT 0x8D9A
#endif //GL_BGR_INTEGER_EXT
#ifndef GL_BGRA_INTEGER_EXT
#define GL_BGRA_INTEGER_EXT 0x8D9B
#endif //GL_BGRA_INTEGER_EXT
#ifndef GL_LUMINANCE_INTEGER_EXT
#define GL_LUMINANCE_INTEGER_EXT 0x8D9C
#endif //GL_LUMINANCE_INTEGER_EXT
#ifndef GL_LUMINANCE_ALPHA_INTEGER_EXT
#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D
#endif //GL_LUMINANCE_ALPHA_INTEGER_EXT
#ifndef GL_RGBA_INTEGER_MODE_EXT
#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E
#endif //GL_RGBA_INTEGER_MODE_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLCLEARCOLORIIEXTPROC_HPP)(GLint,GLint,GLint,GLint);
static inline void ClearColorIiEXT(GLint red1,GLint green1,GLint blue1,GLint alpha1)
{
	static PFNGLCLEARCOLORIIEXTPROC_HPP fn=reinterpret_cast<PFNGLCLEARCOLORIIEXTPROC_HPP>(_impl::_get_proc_address("glClearColorIiEXT","GL_EXT_texture_integer"));
	 fn(red1,green1,blue1,alpha1);
}
typedef void (*PFNGLCLEARCOLORIUIEXTPROC_HPP)(GLuint,GLuint,GLuint,GLuint);
static inline void ClearColorIuiEXT(GLuint red1,GLuint green1,GLuint blue1,GLuint alpha1)
{
	static PFNGLCLEARCOLORIUIEXTPROC_HPP fn=reinterpret_cast<PFNGLCLEARCOLORIUIEXTPROC_HPP>(_impl::_get_proc_address("glClearColorIuiEXT","GL_EXT_texture_integer"));
	 fn(red1,green1,blue1,alpha1);
}
typedef void (*PFNGLGETTEXPARAMETERIIVEXTPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetTexParameterIivEXT(GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETTEXPARAMETERIIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETTEXPARAMETERIIVEXTPROC_HPP>(_impl::_get_proc_address("glGetTexParameterIivEXT","GL_EXT_texture_integer"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETTEXPARAMETERIUIVEXTPROC_HPP)(GLenum,GLenum,GLuint *);
static inline void GetTexParameterIuivEXT(GLenum target1,GLenum pname1,GLuint * params1)
{
	static PFNGLGETTEXPARAMETERIUIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETTEXPARAMETERIUIVEXTPROC_HPP>(_impl::_get_proc_address("glGetTexParameterIuivEXT","GL_EXT_texture_integer"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLTEXPARAMETERIIVEXTPROC_HPP)(GLenum,GLenum,const GLint *);
static inline void TexParameterIivEXT(GLenum target1,GLenum pname1,const GLint * params1)
{
	static PFNGLTEXPARAMETERIIVEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXPARAMETERIIVEXTPROC_HPP>(_impl::_get_proc_address("glTexParameterIivEXT","GL_EXT_texture_integer"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLTEXPARAMETERIUIVEXTPROC_HPP)(GLenum,GLenum,const GLuint *);
static inline void TexParameterIuivEXT(GLenum target1,GLenum pname1,const GLuint * params1)
{
	static PFNGLTEXPARAMETERIUIVEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXPARAMETERIUIVEXTPROC_HPP>(_impl::_get_proc_address("glTexParameterIuivEXT","GL_EXT_texture_integer"));
	 fn(target1,pname1,params1);
}}
#endif

#ifndef GL_EXT_texture_lod_bias
#define GL_EXT_texture_lod_bias
#ifndef GL_MAX_TEXTURE_LOD_BIAS_EXT
#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD
#endif //GL_MAX_TEXTURE_LOD_BIAS_EXT
#ifndef GL_TEXTURE_FILTER_CONTROL_EXT
#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500
#endif //GL_TEXTURE_FILTER_CONTROL_EXT
#ifndef GL_TEXTURE_LOD_BIAS_EXT
#define GL_TEXTURE_LOD_BIAS_EXT 0x8501
#endif //GL_TEXTURE_LOD_BIAS_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_texture_mirror_clamp
#define GL_EXT_texture_mirror_clamp
#ifndef GL_MIRROR_CLAMP_EXT
#define GL_MIRROR_CLAMP_EXT 0x8742
#endif //GL_MIRROR_CLAMP_EXT
#ifndef GL_MIRROR_CLAMP_TO_EDGE_EXT
#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743
#endif //GL_MIRROR_CLAMP_TO_EDGE_EXT
#ifndef GL_MIRROR_CLAMP_TO_BORDER_EXT
#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912
#endif //GL_MIRROR_CLAMP_TO_BORDER_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_texture_object
#define GL_EXT_texture_object
#ifndef GL_TEXTURE_PRIORITY_EXT
#define GL_TEXTURE_PRIORITY_EXT 0x8066
#endif //GL_TEXTURE_PRIORITY_EXT
#ifndef GL_TEXTURE_RESIDENT_EXT
#define GL_TEXTURE_RESIDENT_EXT 0x8067
#endif //GL_TEXTURE_RESIDENT_EXT
#ifndef GL_TEXTURE_1D_BINDING_EXT
#define GL_TEXTURE_1D_BINDING_EXT 0x8068
#endif //GL_TEXTURE_1D_BINDING_EXT
#ifndef GL_TEXTURE_2D_BINDING_EXT
#define GL_TEXTURE_2D_BINDING_EXT 0x8069
#endif //GL_TEXTURE_2D_BINDING_EXT
#ifndef GL_TEXTURE_3D_BINDING_EXT
#define GL_TEXTURE_3D_BINDING_EXT 0x806A
#endif //GL_TEXTURE_3D_BINDING_EXT
extern "C" {
}
namespace gl{

typedef GLboolean (*PFNGLARETEXTURESRESIDENTEXTPROC_HPP)(GLsizei,const GLuint *,GLboolean *);
static inline GLboolean AreTexturesResidentEXT(GLsizei n1,const GLuint * textures1,GLboolean * residences1)
{
	static PFNGLARETEXTURESRESIDENTEXTPROC_HPP fn=reinterpret_cast<PFNGLARETEXTURESRESIDENTEXTPROC_HPP>(_impl::_get_proc_address("glAreTexturesResidentEXT","GL_EXT_texture_object"));
	return fn(n1,textures1,residences1);
}
typedef void (*PFNGLBINDTEXTUREEXTPROC_HPP)(GLenum,GLuint);
static inline void BindTextureEXT(GLenum target1,GLuint texture1)
{
	static PFNGLBINDTEXTUREEXTPROC_HPP fn=reinterpret_cast<PFNGLBINDTEXTUREEXTPROC_HPP>(_impl::_get_proc_address("glBindTextureEXT","GL_EXT_texture_object"));
	 fn(target1,texture1);
}
typedef void (*PFNGLDELETETEXTURESEXTPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteTexturesEXT(GLsizei n1,const GLuint * textures1)
{
	static PFNGLDELETETEXTURESEXTPROC_HPP fn=reinterpret_cast<PFNGLDELETETEXTURESEXTPROC_HPP>(_impl::_get_proc_address("glDeleteTexturesEXT","GL_EXT_texture_object"));
	 fn(n1,textures1);
}
typedef void (*PFNGLGENTEXTURESEXTPROC_HPP)(GLsizei,GLuint *);
static inline void GenTexturesEXT(GLsizei n1,GLuint * textures1)
{
	static PFNGLGENTEXTURESEXTPROC_HPP fn=reinterpret_cast<PFNGLGENTEXTURESEXTPROC_HPP>(_impl::_get_proc_address("glGenTexturesEXT","GL_EXT_texture_object"));
	 fn(n1,textures1);
}
typedef GLboolean (*PFNGLISTEXTUREEXTPROC_HPP)(GLuint);
static inline GLboolean IsTextureEXT(GLuint texture1)
{
	static PFNGLISTEXTUREEXTPROC_HPP fn=reinterpret_cast<PFNGLISTEXTUREEXTPROC_HPP>(_impl::_get_proc_address("glIsTextureEXT","GL_EXT_texture_object"));
	return fn(texture1);
}
typedef void (*PFNGLPRIORITIZETEXTURESEXTPROC_HPP)(GLsizei,const GLuint *,const GLclampf *);
static inline void PrioritizeTexturesEXT(GLsizei n1,const GLuint * textures1,const GLclampf * priorities1)
{
	static PFNGLPRIORITIZETEXTURESEXTPROC_HPP fn=reinterpret_cast<PFNGLPRIORITIZETEXTURESEXTPROC_HPP>(_impl::_get_proc_address("glPrioritizeTexturesEXT","GL_EXT_texture_object"));
	 fn(n1,textures1,priorities1);
}}
#endif

#ifndef GL_EXT_texture_perturb_normal
#define GL_EXT_texture_perturb_normal
#ifndef GL_PERTURB_EXT
#define GL_PERTURB_EXT 0x85AE
#endif //GL_PERTURB_EXT
#ifndef GL_TEXTURE_NORMAL_EXT
#define GL_TEXTURE_NORMAL_EXT 0x85AF
#endif //GL_TEXTURE_NORMAL_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLTEXTURENORMALEXTPROC_HPP)(GLenum);
static inline void TextureNormalEXT(GLenum mode1)
{
	static PFNGLTEXTURENORMALEXTPROC_HPP fn=reinterpret_cast<PFNGLTEXTURENORMALEXTPROC_HPP>(_impl::_get_proc_address("glTextureNormalEXT","GL_EXT_texture_perturb_normal"));
	 fn(mode1);
}}
#endif

#ifndef GL_EXT_texture_sRGB
#define GL_EXT_texture_sRGB
#ifndef GL_SRGB_EXT
#define GL_SRGB_EXT 0x8C40
#endif //GL_SRGB_EXT
#ifndef GL_SRGB8_EXT
#define GL_SRGB8_EXT 0x8C41
#endif //GL_SRGB8_EXT
#ifndef GL_SRGB_ALPHA_EXT
#define GL_SRGB_ALPHA_EXT 0x8C42
#endif //GL_SRGB_ALPHA_EXT
#ifndef GL_SRGB8_ALPHA8_EXT
#define GL_SRGB8_ALPHA8_EXT 0x8C43
#endif //GL_SRGB8_ALPHA8_EXT
#ifndef GL_SLUMINANCE_ALPHA_EXT
#define GL_SLUMINANCE_ALPHA_EXT 0x8C44
#endif //GL_SLUMINANCE_ALPHA_EXT
#ifndef GL_SLUMINANCE8_ALPHA8_EXT
#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45
#endif //GL_SLUMINANCE8_ALPHA8_EXT
#ifndef GL_SLUMINANCE_EXT
#define GL_SLUMINANCE_EXT 0x8C46
#endif //GL_SLUMINANCE_EXT
#ifndef GL_SLUMINANCE8_EXT
#define GL_SLUMINANCE8_EXT 0x8C47
#endif //GL_SLUMINANCE8_EXT
#ifndef GL_COMPRESSED_SRGB_EXT
#define GL_COMPRESSED_SRGB_EXT 0x8C48
#endif //GL_COMPRESSED_SRGB_EXT
#ifndef GL_COMPRESSED_SRGB_ALPHA_EXT
#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49
#endif //GL_COMPRESSED_SRGB_ALPHA_EXT
#ifndef GL_COMPRESSED_SLUMINANCE_EXT
#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A
#endif //GL_COMPRESSED_SLUMINANCE_EXT
#ifndef GL_COMPRESSED_SLUMINANCE_ALPHA_EXT
#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B
#endif //GL_COMPRESSED_SLUMINANCE_ALPHA_EXT
#ifndef GL_COMPRESSED_SRGB_S3TC_DXT1_EXT
#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C
#endif //GL_COMPRESSED_SRGB_S3TC_DXT1_EXT
#ifndef GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D
#endif //GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
#ifndef GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
#endif //GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
#ifndef GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
#endif //GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_texture_sRGB_decode
#define GL_EXT_texture_sRGB_decode
#ifndef GL_TEXTURE_SRGB_DECODE_EXT
#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48
#endif //GL_TEXTURE_SRGB_DECODE_EXT
#ifndef GL_DECODE_EXT
#define GL_DECODE_EXT 0x8A49
#endif //GL_DECODE_EXT
#ifndef GL_SKIP_DECODE_EXT
#define GL_SKIP_DECODE_EXT 0x8A4A
#endif //GL_SKIP_DECODE_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_texture_shared_exponent
#define GL_EXT_texture_shared_exponent
#ifndef GL_RGB9_E5_EXT
#define GL_RGB9_E5_EXT 0x8C3D
#endif //GL_RGB9_E5_EXT
#ifndef GL_UNSIGNED_INT_5_9_9_9_REV_EXT
#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E
#endif //GL_UNSIGNED_INT_5_9_9_9_REV_EXT
#ifndef GL_TEXTURE_SHARED_SIZE_EXT
#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F
#endif //GL_TEXTURE_SHARED_SIZE_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_texture_snorm
#define GL_EXT_texture_snorm
#ifndef GL_RED_SNORM
#define GL_RED_SNORM 0x8F90
#endif //GL_RED_SNORM
#ifndef GL_RG_SNORM
#define GL_RG_SNORM 0x8F91
#endif //GL_RG_SNORM
#ifndef GL_RGB_SNORM
#define GL_RGB_SNORM 0x8F92
#endif //GL_RGB_SNORM
#ifndef GL_RGBA_SNORM
#define GL_RGBA_SNORM 0x8F93
#endif //GL_RGBA_SNORM
#ifndef GL_R8_SNORM
#define GL_R8_SNORM 0x8F94
#endif //GL_R8_SNORM
#ifndef GL_RG8_SNORM
#define GL_RG8_SNORM 0x8F95
#endif //GL_RG8_SNORM
#ifndef GL_RGB8_SNORM
#define GL_RGB8_SNORM 0x8F96
#endif //GL_RGB8_SNORM
#ifndef GL_RGBA8_SNORM
#define GL_RGBA8_SNORM 0x8F97
#endif //GL_RGBA8_SNORM
#ifndef GL_R16_SNORM
#define GL_R16_SNORM 0x8F98
#endif //GL_R16_SNORM
#ifndef GL_RG16_SNORM
#define GL_RG16_SNORM 0x8F99
#endif //GL_RG16_SNORM
#ifndef GL_RGB16_SNORM
#define GL_RGB16_SNORM 0x8F9A
#endif //GL_RGB16_SNORM
#ifndef GL_RGBA16_SNORM
#define GL_RGBA16_SNORM 0x8F9B
#endif //GL_RGBA16_SNORM
#ifndef GL_SIGNED_NORMALIZED
#define GL_SIGNED_NORMALIZED 0x8F9C
#endif //GL_SIGNED_NORMALIZED
#ifndef GL_ALPHA_SNORM
#define GL_ALPHA_SNORM 0x9010
#endif //GL_ALPHA_SNORM
#ifndef GL_LUMINANCE_SNORM
#define GL_LUMINANCE_SNORM 0x9011
#endif //GL_LUMINANCE_SNORM
#ifndef GL_LUMINANCE_ALPHA_SNORM
#define GL_LUMINANCE_ALPHA_SNORM 0x9012
#endif //GL_LUMINANCE_ALPHA_SNORM
#ifndef GL_INTENSITY_SNORM
#define GL_INTENSITY_SNORM 0x9013
#endif //GL_INTENSITY_SNORM
#ifndef GL_ALPHA8_SNORM
#define GL_ALPHA8_SNORM 0x9014
#endif //GL_ALPHA8_SNORM
#ifndef GL_LUMINANCE8_SNORM
#define GL_LUMINANCE8_SNORM 0x9015
#endif //GL_LUMINANCE8_SNORM
#ifndef GL_LUMINANCE8_ALPHA8_SNORM
#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016
#endif //GL_LUMINANCE8_ALPHA8_SNORM
#ifndef GL_INTENSITY8_SNORM
#define GL_INTENSITY8_SNORM 0x9017
#endif //GL_INTENSITY8_SNORM
#ifndef GL_ALPHA16_SNORM
#define GL_ALPHA16_SNORM 0x9018
#endif //GL_ALPHA16_SNORM
#ifndef GL_LUMINANCE16_SNORM
#define GL_LUMINANCE16_SNORM 0x9019
#endif //GL_LUMINANCE16_SNORM
#ifndef GL_LUMINANCE16_ALPHA16_SNORM
#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A
#endif //GL_LUMINANCE16_ALPHA16_SNORM
#ifndef GL_INTENSITY16_SNORM
#define GL_INTENSITY16_SNORM 0x901B
#endif //GL_INTENSITY16_SNORM
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_texture_swizzle
#define GL_EXT_texture_swizzle
#ifndef GL_TEXTURE_SWIZZLE_R_EXT
#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42
#endif //GL_TEXTURE_SWIZZLE_R_EXT
#ifndef GL_TEXTURE_SWIZZLE_G_EXT
#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43
#endif //GL_TEXTURE_SWIZZLE_G_EXT
#ifndef GL_TEXTURE_SWIZZLE_B_EXT
#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44
#endif //GL_TEXTURE_SWIZZLE_B_EXT
#ifndef GL_TEXTURE_SWIZZLE_A_EXT
#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45
#endif //GL_TEXTURE_SWIZZLE_A_EXT
#ifndef GL_TEXTURE_SWIZZLE_RGBA_EXT
#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46
#endif //GL_TEXTURE_SWIZZLE_RGBA_EXT
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_timer_query
#define GL_EXT_timer_query
#ifndef GL_TIME_ELAPSED_EXT
#define GL_TIME_ELAPSED_EXT 0x88BF
#endif //GL_TIME_ELAPSED_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETQUERYOBJECTI64VEXTPROC_HPP)(GLuint,GLenum,GLint64 *);
static inline void GetQueryObjecti64vEXT(GLuint id1,GLenum pname1,GLint64 * params1)
{
	static PFNGLGETQUERYOBJECTI64VEXTPROC_HPP fn=reinterpret_cast<PFNGLGETQUERYOBJECTI64VEXTPROC_HPP>(_impl::_get_proc_address("glGetQueryObjecti64vEXT","GL_EXT_timer_query"));
	 fn(id1,pname1,params1);
}
typedef void (*PFNGLGETQUERYOBJECTUI64VEXTPROC_HPP)(GLuint,GLenum,GLuint64 *);
static inline void GetQueryObjectui64vEXT(GLuint id1,GLenum pname1,GLuint64 * params1)
{
	static PFNGLGETQUERYOBJECTUI64VEXTPROC_HPP fn=reinterpret_cast<PFNGLGETQUERYOBJECTUI64VEXTPROC_HPP>(_impl::_get_proc_address("glGetQueryObjectui64vEXT","GL_EXT_timer_query"));
	 fn(id1,pname1,params1);
}}
#endif

#ifndef GL_EXT_transform_feedback
#define GL_EXT_transform_feedback
#ifndef GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT
#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76
#endif //GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT
#ifndef GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT
#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F
#endif //GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT
#ifndef GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT
#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80
#endif //GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT
#ifndef GL_TRANSFORM_FEEDBACK_VARYINGS_EXT
#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83
#endif //GL_TRANSFORM_FEEDBACK_VARYINGS_EXT
#ifndef GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT
#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84
#endif //GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT
#ifndef GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT
#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85
#endif //GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT
#ifndef GL_PRIMITIVES_GENERATED_EXT
#define GL_PRIMITIVES_GENERATED_EXT 0x8C87
#endif //GL_PRIMITIVES_GENERATED_EXT
#ifndef GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT
#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88
#endif //GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT
#ifndef GL_RASTERIZER_DISCARD_EXT
#define GL_RASTERIZER_DISCARD_EXT 0x8C89
#endif //GL_RASTERIZER_DISCARD_EXT
#ifndef GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT
#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A
#endif //GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT
#ifndef GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT
#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B
#endif //GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT
#ifndef GL_INTERLEAVED_ATTRIBS_EXT
#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C
#endif //GL_INTERLEAVED_ATTRIBS_EXT
#ifndef GL_SEPARATE_ATTRIBS_EXT
#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D
#endif //GL_SEPARATE_ATTRIBS_EXT
#ifndef GL_TRANSFORM_FEEDBACK_BUFFER_EXT
#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E
#endif //GL_TRANSFORM_FEEDBACK_BUFFER_EXT
#ifndef GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT
#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F
#endif //GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLBEGINTRANSFORMFEEDBACKEXTPROC_HPP)(GLenum);
static inline void BeginTransformFeedbackEXT(GLenum primitiveMode1)
{
	static PFNGLBEGINTRANSFORMFEEDBACKEXTPROC_HPP fn=reinterpret_cast<PFNGLBEGINTRANSFORMFEEDBACKEXTPROC_HPP>(_impl::_get_proc_address("glBeginTransformFeedbackEXT","GL_EXT_transform_feedback"));
	 fn(primitiveMode1);
}
typedef void (*PFNGLBINDBUFFERBASEEXTPROC_HPP)(GLenum,GLuint,GLuint);
static inline void BindBufferBaseEXT(GLenum target1,GLuint index1,GLuint buffer1)
{
	static PFNGLBINDBUFFERBASEEXTPROC_HPP fn=reinterpret_cast<PFNGLBINDBUFFERBASEEXTPROC_HPP>(_impl::_get_proc_address("glBindBufferBaseEXT","GL_EXT_transform_feedback"));
	 fn(target1,index1,buffer1);
}
typedef void (*PFNGLBINDBUFFEROFFSETEXTPROC_HPP)(GLenum,GLuint,GLuint,GLintptr);
static inline void BindBufferOffsetEXT(GLenum target1,GLuint index1,GLuint buffer1,GLintptr offset1)
{
	static PFNGLBINDBUFFEROFFSETEXTPROC_HPP fn=reinterpret_cast<PFNGLBINDBUFFEROFFSETEXTPROC_HPP>(_impl::_get_proc_address("glBindBufferOffsetEXT","GL_EXT_transform_feedback"));
	 fn(target1,index1,buffer1,offset1);
}
typedef void (*PFNGLBINDBUFFERRANGEEXTPROC_HPP)(GLenum,GLuint,GLuint,GLintptr,GLsizeiptr);
static inline void BindBufferRangeEXT(GLenum target1,GLuint index1,GLuint buffer1,GLintptr offset1,GLsizeiptr size1)
{
	static PFNGLBINDBUFFERRANGEEXTPROC_HPP fn=reinterpret_cast<PFNGLBINDBUFFERRANGEEXTPROC_HPP>(_impl::_get_proc_address("glBindBufferRangeEXT","GL_EXT_transform_feedback"));
	 fn(target1,index1,buffer1,offset1,size1);
}
typedef void (*PFNGLENDTRANSFORMFEEDBACKEXTPROC_HPP)();
static inline void EndTransformFeedbackEXT()
{
	static PFNGLENDTRANSFORMFEEDBACKEXTPROC_HPP fn=reinterpret_cast<PFNGLENDTRANSFORMFEEDBACKEXTPROC_HPP>(_impl::_get_proc_address("glEndTransformFeedbackEXT","GL_EXT_transform_feedback"));
	 fn();
}
typedef void (*PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC_HPP)(GLuint,GLuint,GLsizei,GLsizei *,GLsizei *,GLenum *,GLchar *);
static inline void GetTransformFeedbackVaryingEXT(GLuint program1,GLuint index1,GLsizei bufSize1,GLsizei * length1,GLsizei * size1,GLenum * type1,GLchar * name1)
{
	static PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC_HPP fn=reinterpret_cast<PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC_HPP>(_impl::_get_proc_address("glGetTransformFeedbackVaryingEXT","GL_EXT_transform_feedback"));
	 fn(program1,index1,bufSize1,length1,size1,type1,name1);
}
typedef void (*PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC_HPP)(GLuint,GLsizei,const GLchar *const*,GLenum);
static inline void TransformFeedbackVaryingsEXT(GLuint program1,GLsizei count1,const GLchar *const* varyings1,GLenum bufferMode1)
{
	static PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC_HPP fn=reinterpret_cast<PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC_HPP>(_impl::_get_proc_address("glTransformFeedbackVaryingsEXT","GL_EXT_transform_feedback"));
	 fn(program1,count1,varyings1,bufferMode1);
}}
#endif

#ifndef GL_EXT_vertex_array
#define GL_EXT_vertex_array
#ifndef GL_VERTEX_ARRAY_EXT
#define GL_VERTEX_ARRAY_EXT 0x8074
#endif //GL_VERTEX_ARRAY_EXT
#ifndef GL_NORMAL_ARRAY_EXT
#define GL_NORMAL_ARRAY_EXT 0x8075
#endif //GL_NORMAL_ARRAY_EXT
#ifndef GL_COLOR_ARRAY_EXT
#define GL_COLOR_ARRAY_EXT 0x8076
#endif //GL_COLOR_ARRAY_EXT
#ifndef GL_INDEX_ARRAY_EXT
#define GL_INDEX_ARRAY_EXT 0x8077
#endif //GL_INDEX_ARRAY_EXT
#ifndef GL_TEXTURE_COORD_ARRAY_EXT
#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078
#endif //GL_TEXTURE_COORD_ARRAY_EXT
#ifndef GL_EDGE_FLAG_ARRAY_EXT
#define GL_EDGE_FLAG_ARRAY_EXT 0x8079
#endif //GL_EDGE_FLAG_ARRAY_EXT
#ifndef GL_VERTEX_ARRAY_SIZE_EXT
#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A
#endif //GL_VERTEX_ARRAY_SIZE_EXT
#ifndef GL_VERTEX_ARRAY_TYPE_EXT
#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B
#endif //GL_VERTEX_ARRAY_TYPE_EXT
#ifndef GL_VERTEX_ARRAY_STRIDE_EXT
#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C
#endif //GL_VERTEX_ARRAY_STRIDE_EXT
#ifndef GL_VERTEX_ARRAY_COUNT_EXT
#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D
#endif //GL_VERTEX_ARRAY_COUNT_EXT
#ifndef GL_NORMAL_ARRAY_TYPE_EXT
#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E
#endif //GL_NORMAL_ARRAY_TYPE_EXT
#ifndef GL_NORMAL_ARRAY_STRIDE_EXT
#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F
#endif //GL_NORMAL_ARRAY_STRIDE_EXT
#ifndef GL_NORMAL_ARRAY_COUNT_EXT
#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080
#endif //GL_NORMAL_ARRAY_COUNT_EXT
#ifndef GL_COLOR_ARRAY_SIZE_EXT
#define GL_COLOR_ARRAY_SIZE_EXT 0x8081
#endif //GL_COLOR_ARRAY_SIZE_EXT
#ifndef GL_COLOR_ARRAY_TYPE_EXT
#define GL_COLOR_ARRAY_TYPE_EXT 0x8082
#endif //GL_COLOR_ARRAY_TYPE_EXT
#ifndef GL_COLOR_ARRAY_STRIDE_EXT
#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083
#endif //GL_COLOR_ARRAY_STRIDE_EXT
#ifndef GL_COLOR_ARRAY_COUNT_EXT
#define GL_COLOR_ARRAY_COUNT_EXT 0x8084
#endif //GL_COLOR_ARRAY_COUNT_EXT
#ifndef GL_INDEX_ARRAY_TYPE_EXT
#define GL_INDEX_ARRAY_TYPE_EXT 0x8085
#endif //GL_INDEX_ARRAY_TYPE_EXT
#ifndef GL_INDEX_ARRAY_STRIDE_EXT
#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086
#endif //GL_INDEX_ARRAY_STRIDE_EXT
#ifndef GL_INDEX_ARRAY_COUNT_EXT
#define GL_INDEX_ARRAY_COUNT_EXT 0x8087
#endif //GL_INDEX_ARRAY_COUNT_EXT
#ifndef GL_TEXTURE_COORD_ARRAY_SIZE_EXT
#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088
#endif //GL_TEXTURE_COORD_ARRAY_SIZE_EXT
#ifndef GL_TEXTURE_COORD_ARRAY_TYPE_EXT
#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089
#endif //GL_TEXTURE_COORD_ARRAY_TYPE_EXT
#ifndef GL_TEXTURE_COORD_ARRAY_STRIDE_EXT
#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A
#endif //GL_TEXTURE_COORD_ARRAY_STRIDE_EXT
#ifndef GL_TEXTURE_COORD_ARRAY_COUNT_EXT
#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B
#endif //GL_TEXTURE_COORD_ARRAY_COUNT_EXT
#ifndef GL_EDGE_FLAG_ARRAY_STRIDE_EXT
#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C
#endif //GL_EDGE_FLAG_ARRAY_STRIDE_EXT
#ifndef GL_EDGE_FLAG_ARRAY_COUNT_EXT
#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D
#endif //GL_EDGE_FLAG_ARRAY_COUNT_EXT
#ifndef GL_VERTEX_ARRAY_POINTER_EXT
#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E
#endif //GL_VERTEX_ARRAY_POINTER_EXT
#ifndef GL_NORMAL_ARRAY_POINTER_EXT
#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F
#endif //GL_NORMAL_ARRAY_POINTER_EXT
#ifndef GL_COLOR_ARRAY_POINTER_EXT
#define GL_COLOR_ARRAY_POINTER_EXT 0x8090
#endif //GL_COLOR_ARRAY_POINTER_EXT
#ifndef GL_INDEX_ARRAY_POINTER_EXT
#define GL_INDEX_ARRAY_POINTER_EXT 0x8091
#endif //GL_INDEX_ARRAY_POINTER_EXT
#ifndef GL_TEXTURE_COORD_ARRAY_POINTER_EXT
#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092
#endif //GL_TEXTURE_COORD_ARRAY_POINTER_EXT
#ifndef GL_EDGE_FLAG_ARRAY_POINTER_EXT
#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093
#endif //GL_EDGE_FLAG_ARRAY_POINTER_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLARRAYELEMENTEXTPROC_HPP)(GLint);
static inline void ArrayElementEXT(GLint i1)
{
	static PFNGLARRAYELEMENTEXTPROC_HPP fn=reinterpret_cast<PFNGLARRAYELEMENTEXTPROC_HPP>(_impl::_get_proc_address("glArrayElementEXT","GL_EXT_vertex_array"));
	 fn(i1);
}
typedef void (*PFNGLCOLORPOINTEREXTPROC_HPP)(GLint,GLenum,GLsizei,GLsizei,const void *);
static inline void ColorPointerEXT(GLint size1,GLenum type1,GLsizei stride1,GLsizei count1,const void * pointer1)
{
	static PFNGLCOLORPOINTEREXTPROC_HPP fn=reinterpret_cast<PFNGLCOLORPOINTEREXTPROC_HPP>(_impl::_get_proc_address("glColorPointerEXT","GL_EXT_vertex_array"));
	 fn(size1,type1,stride1,count1,pointer1);
}
typedef void (*PFNGLDRAWARRAYSEXTPROC_HPP)(GLenum,GLint,GLsizei);
static inline void DrawArraysEXT(GLenum mode1,GLint first1,GLsizei count1)
{
	static PFNGLDRAWARRAYSEXTPROC_HPP fn=reinterpret_cast<PFNGLDRAWARRAYSEXTPROC_HPP>(_impl::_get_proc_address("glDrawArraysEXT","GL_EXT_vertex_array"));
	 fn(mode1,first1,count1);
}
typedef void (*PFNGLEDGEFLAGPOINTEREXTPROC_HPP)(GLsizei,GLsizei,const GLboolean *);
static inline void EdgeFlagPointerEXT(GLsizei stride1,GLsizei count1,const GLboolean * pointer1)
{
	static PFNGLEDGEFLAGPOINTEREXTPROC_HPP fn=reinterpret_cast<PFNGLEDGEFLAGPOINTEREXTPROC_HPP>(_impl::_get_proc_address("glEdgeFlagPointerEXT","GL_EXT_vertex_array"));
	 fn(stride1,count1,pointer1);
}
typedef void (*PFNGLGETPOINTERVEXTPROC_HPP)(GLenum,void **);
static inline void GetPointervEXT(GLenum pname1,void ** params1)
{
	static PFNGLGETPOINTERVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETPOINTERVEXTPROC_HPP>(_impl::_get_proc_address("glGetPointervEXT","GL_EXT_vertex_array"));
	 fn(pname1,params1);
}
typedef void (*PFNGLINDEXPOINTEREXTPROC_HPP)(GLenum,GLsizei,GLsizei,const void *);
static inline void IndexPointerEXT(GLenum type1,GLsizei stride1,GLsizei count1,const void * pointer1)
{
	static PFNGLINDEXPOINTEREXTPROC_HPP fn=reinterpret_cast<PFNGLINDEXPOINTEREXTPROC_HPP>(_impl::_get_proc_address("glIndexPointerEXT","GL_EXT_vertex_array"));
	 fn(type1,stride1,count1,pointer1);
}
typedef void (*PFNGLNORMALPOINTEREXTPROC_HPP)(GLenum,GLsizei,GLsizei,const void *);
static inline void NormalPointerEXT(GLenum type1,GLsizei stride1,GLsizei count1,const void * pointer1)
{
	static PFNGLNORMALPOINTEREXTPROC_HPP fn=reinterpret_cast<PFNGLNORMALPOINTEREXTPROC_HPP>(_impl::_get_proc_address("glNormalPointerEXT","GL_EXT_vertex_array"));
	 fn(type1,stride1,count1,pointer1);
}
typedef void (*PFNGLTEXCOORDPOINTEREXTPROC_HPP)(GLint,GLenum,GLsizei,GLsizei,const void *);
static inline void TexCoordPointerEXT(GLint size1,GLenum type1,GLsizei stride1,GLsizei count1,const void * pointer1)
{
	static PFNGLTEXCOORDPOINTEREXTPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORDPOINTEREXTPROC_HPP>(_impl::_get_proc_address("glTexCoordPointerEXT","GL_EXT_vertex_array"));
	 fn(size1,type1,stride1,count1,pointer1);
}
typedef void (*PFNGLVERTEXPOINTEREXTPROC_HPP)(GLint,GLenum,GLsizei,GLsizei,const void *);
static inline void VertexPointerEXT(GLint size1,GLenum type1,GLsizei stride1,GLsizei count1,const void * pointer1)
{
	static PFNGLVERTEXPOINTEREXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXPOINTEREXTPROC_HPP>(_impl::_get_proc_address("glVertexPointerEXT","GL_EXT_vertex_array"));
	 fn(size1,type1,stride1,count1,pointer1);
}}
#endif

#ifndef GL_EXT_vertex_array_bgra
#define GL_EXT_vertex_array_bgra
#ifndef GL_BGRA
#define GL_BGRA 0x80E1
#endif //GL_BGRA
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_EXT_vertex_attrib_64bit
#define GL_EXT_vertex_attrib_64bit
#ifndef GL_DOUBLE
#define GL_DOUBLE 0x140A
#endif //GL_DOUBLE
#ifndef GL_DOUBLE_MAT2_EXT
#define GL_DOUBLE_MAT2_EXT 0x8F46
#endif //GL_DOUBLE_MAT2_EXT
#ifndef GL_DOUBLE_MAT3_EXT
#define GL_DOUBLE_MAT3_EXT 0x8F47
#endif //GL_DOUBLE_MAT3_EXT
#ifndef GL_DOUBLE_MAT4_EXT
#define GL_DOUBLE_MAT4_EXT 0x8F48
#endif //GL_DOUBLE_MAT4_EXT
#ifndef GL_DOUBLE_MAT2x3_EXT
#define GL_DOUBLE_MAT2x3_EXT 0x8F49
#endif //GL_DOUBLE_MAT2x3_EXT
#ifndef GL_DOUBLE_MAT2x4_EXT
#define GL_DOUBLE_MAT2x4_EXT 0x8F4A
#endif //GL_DOUBLE_MAT2x4_EXT
#ifndef GL_DOUBLE_MAT3x2_EXT
#define GL_DOUBLE_MAT3x2_EXT 0x8F4B
#endif //GL_DOUBLE_MAT3x2_EXT
#ifndef GL_DOUBLE_MAT3x4_EXT
#define GL_DOUBLE_MAT3x4_EXT 0x8F4C
#endif //GL_DOUBLE_MAT3x4_EXT
#ifndef GL_DOUBLE_MAT4x2_EXT
#define GL_DOUBLE_MAT4x2_EXT 0x8F4D
#endif //GL_DOUBLE_MAT4x2_EXT
#ifndef GL_DOUBLE_MAT4x3_EXT
#define GL_DOUBLE_MAT4x3_EXT 0x8F4E
#endif //GL_DOUBLE_MAT4x3_EXT
#ifndef GL_DOUBLE_VEC2_EXT
#define GL_DOUBLE_VEC2_EXT 0x8FFC
#endif //GL_DOUBLE_VEC2_EXT
#ifndef GL_DOUBLE_VEC3_EXT
#define GL_DOUBLE_VEC3_EXT 0x8FFD
#endif //GL_DOUBLE_VEC3_EXT
#ifndef GL_DOUBLE_VEC4_EXT
#define GL_DOUBLE_VEC4_EXT 0x8FFE
#endif //GL_DOUBLE_VEC4_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETVERTEXATTRIBLDVEXTPROC_HPP)(GLuint,GLenum,GLdouble *);
static inline void GetVertexAttribLdvEXT(GLuint index1,GLenum pname1,GLdouble * params1)
{
	static PFNGLGETVERTEXATTRIBLDVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBLDVEXTPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribLdvEXT","GL_EXT_vertex_attrib_64bit"));
	 fn(index1,pname1,params1);
}
typedef void (*PFNGLVERTEXATTRIBL1DEXTPROC_HPP)(GLuint,GLdouble);
static inline void VertexAttribL1dEXT(GLuint index1,GLdouble x1)
{
	static PFNGLVERTEXATTRIBL1DEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL1DEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribL1dEXT","GL_EXT_vertex_attrib_64bit"));
	 fn(index1,x1);
}
typedef void (*PFNGLVERTEXATTRIBL1DVEXTPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttribL1dvEXT(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIBL1DVEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL1DVEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribL1dvEXT","GL_EXT_vertex_attrib_64bit"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBL2DEXTPROC_HPP)(GLuint,GLdouble,GLdouble);
static inline void VertexAttribL2dEXT(GLuint index1,GLdouble x1,GLdouble y1)
{
	static PFNGLVERTEXATTRIBL2DEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL2DEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribL2dEXT","GL_EXT_vertex_attrib_64bit"));
	 fn(index1,x1,y1);
}
typedef void (*PFNGLVERTEXATTRIBL2DVEXTPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttribL2dvEXT(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIBL2DVEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL2DVEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribL2dvEXT","GL_EXT_vertex_attrib_64bit"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBL3DEXTPROC_HPP)(GLuint,GLdouble,GLdouble,GLdouble);
static inline void VertexAttribL3dEXT(GLuint index1,GLdouble x1,GLdouble y1,GLdouble z1)
{
	static PFNGLVERTEXATTRIBL3DEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL3DEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribL3dEXT","GL_EXT_vertex_attrib_64bit"));
	 fn(index1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXATTRIBL3DVEXTPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttribL3dvEXT(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIBL3DVEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL3DVEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribL3dvEXT","GL_EXT_vertex_attrib_64bit"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBL4DEXTPROC_HPP)(GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void VertexAttribL4dEXT(GLuint index1,GLdouble x1,GLdouble y1,GLdouble z1,GLdouble w1)
{
	static PFNGLVERTEXATTRIBL4DEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL4DEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribL4dEXT","GL_EXT_vertex_attrib_64bit"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIBL4DVEXTPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttribL4dvEXT(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIBL4DVEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL4DVEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribL4dvEXT","GL_EXT_vertex_attrib_64bit"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBLPOINTEREXTPROC_HPP)(GLuint,GLint,GLenum,GLsizei,const void *);
static inline void VertexAttribLPointerEXT(GLuint index1,GLint size1,GLenum type1,GLsizei stride1,const void * pointer1)
{
	static PFNGLVERTEXATTRIBLPOINTEREXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBLPOINTEREXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribLPointerEXT","GL_EXT_vertex_attrib_64bit"));
	 fn(index1,size1,type1,stride1,pointer1);
}}
#endif

#ifndef GL_EXT_vertex_shader
#define GL_EXT_vertex_shader
#ifndef GL_VERTEX_SHADER_EXT
#define GL_VERTEX_SHADER_EXT 0x8780
#endif //GL_VERTEX_SHADER_EXT
#ifndef GL_VERTEX_SHADER_BINDING_EXT
#define GL_VERTEX_SHADER_BINDING_EXT 0x8781
#endif //GL_VERTEX_SHADER_BINDING_EXT
#ifndef GL_OP_INDEX_EXT
#define GL_OP_INDEX_EXT 0x8782
#endif //GL_OP_INDEX_EXT
#ifndef GL_OP_NEGATE_EXT
#define GL_OP_NEGATE_EXT 0x8783
#endif //GL_OP_NEGATE_EXT
#ifndef GL_OP_DOT3_EXT
#define GL_OP_DOT3_EXT 0x8784
#endif //GL_OP_DOT3_EXT
#ifndef GL_OP_DOT4_EXT
#define GL_OP_DOT4_EXT 0x8785
#endif //GL_OP_DOT4_EXT
#ifndef GL_OP_MUL_EXT
#define GL_OP_MUL_EXT 0x8786
#endif //GL_OP_MUL_EXT
#ifndef GL_OP_ADD_EXT
#define GL_OP_ADD_EXT 0x8787
#endif //GL_OP_ADD_EXT
#ifndef GL_OP_MADD_EXT
#define GL_OP_MADD_EXT 0x8788
#endif //GL_OP_MADD_EXT
#ifndef GL_OP_FRAC_EXT
#define GL_OP_FRAC_EXT 0x8789
#endif //GL_OP_FRAC_EXT
#ifndef GL_OP_MAX_EXT
#define GL_OP_MAX_EXT 0x878A
#endif //GL_OP_MAX_EXT
#ifndef GL_OP_MIN_EXT
#define GL_OP_MIN_EXT 0x878B
#endif //GL_OP_MIN_EXT
#ifndef GL_OP_SET_GE_EXT
#define GL_OP_SET_GE_EXT 0x878C
#endif //GL_OP_SET_GE_EXT
#ifndef GL_OP_SET_LT_EXT
#define GL_OP_SET_LT_EXT 0x878D
#endif //GL_OP_SET_LT_EXT
#ifndef GL_OP_CLAMP_EXT
#define GL_OP_CLAMP_EXT 0x878E
#endif //GL_OP_CLAMP_EXT
#ifndef GL_OP_FLOOR_EXT
#define GL_OP_FLOOR_EXT 0x878F
#endif //GL_OP_FLOOR_EXT
#ifndef GL_OP_ROUND_EXT
#define GL_OP_ROUND_EXT 0x8790
#endif //GL_OP_ROUND_EXT
#ifndef GL_OP_EXP_BASE_2_EXT
#define GL_OP_EXP_BASE_2_EXT 0x8791
#endif //GL_OP_EXP_BASE_2_EXT
#ifndef GL_OP_LOG_BASE_2_EXT
#define GL_OP_LOG_BASE_2_EXT 0x8792
#endif //GL_OP_LOG_BASE_2_EXT
#ifndef GL_OP_POWER_EXT
#define GL_OP_POWER_EXT 0x8793
#endif //GL_OP_POWER_EXT
#ifndef GL_OP_RECIP_EXT
#define GL_OP_RECIP_EXT 0x8794
#endif //GL_OP_RECIP_EXT
#ifndef GL_OP_RECIP_SQRT_EXT
#define GL_OP_RECIP_SQRT_EXT 0x8795
#endif //GL_OP_RECIP_SQRT_EXT
#ifndef GL_OP_SUB_EXT
#define GL_OP_SUB_EXT 0x8796
#endif //GL_OP_SUB_EXT
#ifndef GL_OP_CROSS_PRODUCT_EXT
#define GL_OP_CROSS_PRODUCT_EXT 0x8797
#endif //GL_OP_CROSS_PRODUCT_EXT
#ifndef GL_OP_MULTIPLY_MATRIX_EXT
#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798
#endif //GL_OP_MULTIPLY_MATRIX_EXT
#ifndef GL_OP_MOV_EXT
#define GL_OP_MOV_EXT 0x8799
#endif //GL_OP_MOV_EXT
#ifndef GL_OUTPUT_VERTEX_EXT
#define GL_OUTPUT_VERTEX_EXT 0x879A
#endif //GL_OUTPUT_VERTEX_EXT
#ifndef GL_OUTPUT_COLOR0_EXT
#define GL_OUTPUT_COLOR0_EXT 0x879B
#endif //GL_OUTPUT_COLOR0_EXT
#ifndef GL_OUTPUT_COLOR1_EXT
#define GL_OUTPUT_COLOR1_EXT 0x879C
#endif //GL_OUTPUT_COLOR1_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD0_EXT
#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D
#endif //GL_OUTPUT_TEXTURE_COORD0_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD1_EXT
#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E
#endif //GL_OUTPUT_TEXTURE_COORD1_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD2_EXT
#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F
#endif //GL_OUTPUT_TEXTURE_COORD2_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD3_EXT
#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0
#endif //GL_OUTPUT_TEXTURE_COORD3_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD4_EXT
#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1
#endif //GL_OUTPUT_TEXTURE_COORD4_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD5_EXT
#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2
#endif //GL_OUTPUT_TEXTURE_COORD5_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD6_EXT
#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3
#endif //GL_OUTPUT_TEXTURE_COORD6_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD7_EXT
#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4
#endif //GL_OUTPUT_TEXTURE_COORD7_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD8_EXT
#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5
#endif //GL_OUTPUT_TEXTURE_COORD8_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD9_EXT
#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6
#endif //GL_OUTPUT_TEXTURE_COORD9_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD10_EXT
#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7
#endif //GL_OUTPUT_TEXTURE_COORD10_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD11_EXT
#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8
#endif //GL_OUTPUT_TEXTURE_COORD11_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD12_EXT
#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9
#endif //GL_OUTPUT_TEXTURE_COORD12_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD13_EXT
#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA
#endif //GL_OUTPUT_TEXTURE_COORD13_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD14_EXT
#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB
#endif //GL_OUTPUT_TEXTURE_COORD14_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD15_EXT
#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC
#endif //GL_OUTPUT_TEXTURE_COORD15_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD16_EXT
#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD
#endif //GL_OUTPUT_TEXTURE_COORD16_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD17_EXT
#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE
#endif //GL_OUTPUT_TEXTURE_COORD17_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD18_EXT
#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF
#endif //GL_OUTPUT_TEXTURE_COORD18_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD19_EXT
#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0
#endif //GL_OUTPUT_TEXTURE_COORD19_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD20_EXT
#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1
#endif //GL_OUTPUT_TEXTURE_COORD20_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD21_EXT
#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2
#endif //GL_OUTPUT_TEXTURE_COORD21_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD22_EXT
#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3
#endif //GL_OUTPUT_TEXTURE_COORD22_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD23_EXT
#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4
#endif //GL_OUTPUT_TEXTURE_COORD23_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD24_EXT
#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5
#endif //GL_OUTPUT_TEXTURE_COORD24_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD25_EXT
#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6
#endif //GL_OUTPUT_TEXTURE_COORD25_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD26_EXT
#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7
#endif //GL_OUTPUT_TEXTURE_COORD26_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD27_EXT
#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8
#endif //GL_OUTPUT_TEXTURE_COORD27_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD28_EXT
#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9
#endif //GL_OUTPUT_TEXTURE_COORD28_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD29_EXT
#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA
#endif //GL_OUTPUT_TEXTURE_COORD29_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD30_EXT
#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB
#endif //GL_OUTPUT_TEXTURE_COORD30_EXT
#ifndef GL_OUTPUT_TEXTURE_COORD31_EXT
#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC
#endif //GL_OUTPUT_TEXTURE_COORD31_EXT
#ifndef GL_OUTPUT_FOG_EXT
#define GL_OUTPUT_FOG_EXT 0x87BD
#endif //GL_OUTPUT_FOG_EXT
#ifndef GL_SCALAR_EXT
#define GL_SCALAR_EXT 0x87BE
#endif //GL_SCALAR_EXT
#ifndef GL_VECTOR_EXT
#define GL_VECTOR_EXT 0x87BF
#endif //GL_VECTOR_EXT
#ifndef GL_MATRIX_EXT
#define GL_MATRIX_EXT 0x87C0
#endif //GL_MATRIX_EXT
#ifndef GL_VARIANT_EXT
#define GL_VARIANT_EXT 0x87C1
#endif //GL_VARIANT_EXT
#ifndef GL_INVARIANT_EXT
#define GL_INVARIANT_EXT 0x87C2
#endif //GL_INVARIANT_EXT
#ifndef GL_LOCAL_CONSTANT_EXT
#define GL_LOCAL_CONSTANT_EXT 0x87C3
#endif //GL_LOCAL_CONSTANT_EXT
#ifndef GL_LOCAL_EXT
#define GL_LOCAL_EXT 0x87C4
#endif //GL_LOCAL_EXT
#ifndef GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT
#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5
#endif //GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT
#ifndef GL_MAX_VERTEX_SHADER_VARIANTS_EXT
#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6
#endif //GL_MAX_VERTEX_SHADER_VARIANTS_EXT
#ifndef GL_MAX_VERTEX_SHADER_INVARIANTS_EXT
#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7
#endif //GL_MAX_VERTEX_SHADER_INVARIANTS_EXT
#ifndef GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT
#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8
#endif //GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT
#ifndef GL_MAX_VERTEX_SHADER_LOCALS_EXT
#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9
#endif //GL_MAX_VERTEX_SHADER_LOCALS_EXT
#ifndef GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT
#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA
#endif //GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT
#ifndef GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT
#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB
#endif //GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT
#ifndef GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT
#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC
#endif //GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT
#ifndef GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT
#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD
#endif //GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT
#ifndef GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT
#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE
#endif //GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT
#ifndef GL_VERTEX_SHADER_INSTRUCTIONS_EXT
#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF
#endif //GL_VERTEX_SHADER_INSTRUCTIONS_EXT
#ifndef GL_VERTEX_SHADER_VARIANTS_EXT
#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0
#endif //GL_VERTEX_SHADER_VARIANTS_EXT
#ifndef GL_VERTEX_SHADER_INVARIANTS_EXT
#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1
#endif //GL_VERTEX_SHADER_INVARIANTS_EXT
#ifndef GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT
#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2
#endif //GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT
#ifndef GL_VERTEX_SHADER_LOCALS_EXT
#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3
#endif //GL_VERTEX_SHADER_LOCALS_EXT
#ifndef GL_VERTEX_SHADER_OPTIMIZED_EXT
#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4
#endif //GL_VERTEX_SHADER_OPTIMIZED_EXT
#ifndef GL_X_EXT
#define GL_X_EXT 0x87D5
#endif //GL_X_EXT
#ifndef GL_Y_EXT
#define GL_Y_EXT 0x87D6
#endif //GL_Y_EXT
#ifndef GL_Z_EXT
#define GL_Z_EXT 0x87D7
#endif //GL_Z_EXT
#ifndef GL_W_EXT
#define GL_W_EXT 0x87D8
#endif //GL_W_EXT
#ifndef GL_NEGATIVE_X_EXT
#define GL_NEGATIVE_X_EXT 0x87D9
#endif //GL_NEGATIVE_X_EXT
#ifndef GL_NEGATIVE_Y_EXT
#define GL_NEGATIVE_Y_EXT 0x87DA
#endif //GL_NEGATIVE_Y_EXT
#ifndef GL_NEGATIVE_Z_EXT
#define GL_NEGATIVE_Z_EXT 0x87DB
#endif //GL_NEGATIVE_Z_EXT
#ifndef GL_NEGATIVE_W_EXT
#define GL_NEGATIVE_W_EXT 0x87DC
#endif //GL_NEGATIVE_W_EXT
#ifndef GL_ZERO_EXT
#define GL_ZERO_EXT 0x87DD
#endif //GL_ZERO_EXT
#ifndef GL_ONE_EXT
#define GL_ONE_EXT 0x87DE
#endif //GL_ONE_EXT
#ifndef GL_NEGATIVE_ONE_EXT
#define GL_NEGATIVE_ONE_EXT 0x87DF
#endif //GL_NEGATIVE_ONE_EXT
#ifndef GL_NORMALIZED_RANGE_EXT
#define GL_NORMALIZED_RANGE_EXT 0x87E0
#endif //GL_NORMALIZED_RANGE_EXT
#ifndef GL_FULL_RANGE_EXT
#define GL_FULL_RANGE_EXT 0x87E1
#endif //GL_FULL_RANGE_EXT
#ifndef GL_CURRENT_VERTEX_EXT
#define GL_CURRENT_VERTEX_EXT 0x87E2
#endif //GL_CURRENT_VERTEX_EXT
#ifndef GL_MVP_MATRIX_EXT
#define GL_MVP_MATRIX_EXT 0x87E3
#endif //GL_MVP_MATRIX_EXT
#ifndef GL_VARIANT_VALUE_EXT
#define GL_VARIANT_VALUE_EXT 0x87E4
#endif //GL_VARIANT_VALUE_EXT
#ifndef GL_VARIANT_DATATYPE_EXT
#define GL_VARIANT_DATATYPE_EXT 0x87E5
#endif //GL_VARIANT_DATATYPE_EXT
#ifndef GL_VARIANT_ARRAY_STRIDE_EXT
#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6
#endif //GL_VARIANT_ARRAY_STRIDE_EXT
#ifndef GL_VARIANT_ARRAY_TYPE_EXT
#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7
#endif //GL_VARIANT_ARRAY_TYPE_EXT
#ifndef GL_VARIANT_ARRAY_EXT
#define GL_VARIANT_ARRAY_EXT 0x87E8
#endif //GL_VARIANT_ARRAY_EXT
#ifndef GL_VARIANT_ARRAY_POINTER_EXT
#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9
#endif //GL_VARIANT_ARRAY_POINTER_EXT
#ifndef GL_INVARIANT_VALUE_EXT
#define GL_INVARIANT_VALUE_EXT 0x87EA
#endif //GL_INVARIANT_VALUE_EXT
#ifndef GL_INVARIANT_DATATYPE_EXT
#define GL_INVARIANT_DATATYPE_EXT 0x87EB
#endif //GL_INVARIANT_DATATYPE_EXT
#ifndef GL_LOCAL_CONSTANT_VALUE_EXT
#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC
#endif //GL_LOCAL_CONSTANT_VALUE_EXT
#ifndef GL_LOCAL_CONSTANT_DATATYPE_EXT
#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED
#endif //GL_LOCAL_CONSTANT_DATATYPE_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLBEGINVERTEXSHADEREXTPROC_HPP)();
static inline void BeginVertexShaderEXT()
{
	static PFNGLBEGINVERTEXSHADEREXTPROC_HPP fn=reinterpret_cast<PFNGLBEGINVERTEXSHADEREXTPROC_HPP>(_impl::_get_proc_address("glBeginVertexShaderEXT","GL_EXT_vertex_shader"));
	 fn();
}
typedef GLuint (*PFNGLBINDLIGHTPARAMETEREXTPROC_HPP)(GLenum,GLenum);
static inline GLuint BindLightParameterEXT(GLenum light1,GLenum value1)
{
	static PFNGLBINDLIGHTPARAMETEREXTPROC_HPP fn=reinterpret_cast<PFNGLBINDLIGHTPARAMETEREXTPROC_HPP>(_impl::_get_proc_address("glBindLightParameterEXT","GL_EXT_vertex_shader"));
	return fn(light1,value1);
}
typedef GLuint (*PFNGLBINDMATERIALPARAMETEREXTPROC_HPP)(GLenum,GLenum);
static inline GLuint BindMaterialParameterEXT(GLenum face1,GLenum value1)
{
	static PFNGLBINDMATERIALPARAMETEREXTPROC_HPP fn=reinterpret_cast<PFNGLBINDMATERIALPARAMETEREXTPROC_HPP>(_impl::_get_proc_address("glBindMaterialParameterEXT","GL_EXT_vertex_shader"));
	return fn(face1,value1);
}
typedef GLuint (*PFNGLBINDPARAMETEREXTPROC_HPP)(GLenum);
static inline GLuint BindParameterEXT(GLenum value1)
{
	static PFNGLBINDPARAMETEREXTPROC_HPP fn=reinterpret_cast<PFNGLBINDPARAMETEREXTPROC_HPP>(_impl::_get_proc_address("glBindParameterEXT","GL_EXT_vertex_shader"));
	return fn(value1);
}
typedef GLuint (*PFNGLBINDTEXGENPARAMETEREXTPROC_HPP)(GLenum,GLenum,GLenum);
static inline GLuint BindTexGenParameterEXT(GLenum unit1,GLenum coord1,GLenum value1)
{
	static PFNGLBINDTEXGENPARAMETEREXTPROC_HPP fn=reinterpret_cast<PFNGLBINDTEXGENPARAMETEREXTPROC_HPP>(_impl::_get_proc_address("glBindTexGenParameterEXT","GL_EXT_vertex_shader"));
	return fn(unit1,coord1,value1);
}
typedef GLuint (*PFNGLBINDTEXTUREUNITPARAMETEREXTPROC_HPP)(GLenum,GLenum);
static inline GLuint BindTextureUnitParameterEXT(GLenum unit1,GLenum value1)
{
	static PFNGLBINDTEXTUREUNITPARAMETEREXTPROC_HPP fn=reinterpret_cast<PFNGLBINDTEXTUREUNITPARAMETEREXTPROC_HPP>(_impl::_get_proc_address("glBindTextureUnitParameterEXT","GL_EXT_vertex_shader"));
	return fn(unit1,value1);
}
typedef void (*PFNGLBINDVERTEXSHADEREXTPROC_HPP)(GLuint);
static inline void BindVertexShaderEXT(GLuint id1)
{
	static PFNGLBINDVERTEXSHADEREXTPROC_HPP fn=reinterpret_cast<PFNGLBINDVERTEXSHADEREXTPROC_HPP>(_impl::_get_proc_address("glBindVertexShaderEXT","GL_EXT_vertex_shader"));
	 fn(id1);
}
typedef void (*PFNGLDELETEVERTEXSHADEREXTPROC_HPP)(GLuint);
static inline void DeleteVertexShaderEXT(GLuint id1)
{
	static PFNGLDELETEVERTEXSHADEREXTPROC_HPP fn=reinterpret_cast<PFNGLDELETEVERTEXSHADEREXTPROC_HPP>(_impl::_get_proc_address("glDeleteVertexShaderEXT","GL_EXT_vertex_shader"));
	 fn(id1);
}
typedef void (*PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC_HPP)(GLuint);
static inline void DisableVariantClientStateEXT(GLuint id1)
{
	static PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC_HPP fn=reinterpret_cast<PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC_HPP>(_impl::_get_proc_address("glDisableVariantClientStateEXT","GL_EXT_vertex_shader"));
	 fn(id1);
}
typedef void (*PFNGLENABLEVARIANTCLIENTSTATEEXTPROC_HPP)(GLuint);
static inline void EnableVariantClientStateEXT(GLuint id1)
{
	static PFNGLENABLEVARIANTCLIENTSTATEEXTPROC_HPP fn=reinterpret_cast<PFNGLENABLEVARIANTCLIENTSTATEEXTPROC_HPP>(_impl::_get_proc_address("glEnableVariantClientStateEXT","GL_EXT_vertex_shader"));
	 fn(id1);
}
typedef void (*PFNGLENDVERTEXSHADEREXTPROC_HPP)();
static inline void EndVertexShaderEXT()
{
	static PFNGLENDVERTEXSHADEREXTPROC_HPP fn=reinterpret_cast<PFNGLENDVERTEXSHADEREXTPROC_HPP>(_impl::_get_proc_address("glEndVertexShaderEXT","GL_EXT_vertex_shader"));
	 fn();
}
typedef void (*PFNGLEXTRACTCOMPONENTEXTPROC_HPP)(GLuint,GLuint,GLuint);
static inline void ExtractComponentEXT(GLuint res1,GLuint src1,GLuint num1)
{
	static PFNGLEXTRACTCOMPONENTEXTPROC_HPP fn=reinterpret_cast<PFNGLEXTRACTCOMPONENTEXTPROC_HPP>(_impl::_get_proc_address("glExtractComponentEXT","GL_EXT_vertex_shader"));
	 fn(res1,src1,num1);
}
typedef GLuint (*PFNGLGENSYMBOLSEXTPROC_HPP)(GLenum,GLenum,GLenum,GLuint);
static inline GLuint GenSymbolsEXT(GLenum datatype1,GLenum storagetype1,GLenum range1,GLuint components1)
{
	static PFNGLGENSYMBOLSEXTPROC_HPP fn=reinterpret_cast<PFNGLGENSYMBOLSEXTPROC_HPP>(_impl::_get_proc_address("glGenSymbolsEXT","GL_EXT_vertex_shader"));
	return fn(datatype1,storagetype1,range1,components1);
}
typedef GLuint (*PFNGLGENVERTEXSHADERSEXTPROC_HPP)(GLuint);
static inline GLuint GenVertexShadersEXT(GLuint range1)
{
	static PFNGLGENVERTEXSHADERSEXTPROC_HPP fn=reinterpret_cast<PFNGLGENVERTEXSHADERSEXTPROC_HPP>(_impl::_get_proc_address("glGenVertexShadersEXT","GL_EXT_vertex_shader"));
	return fn(range1);
}
typedef void (*PFNGLGETINVARIANTBOOLEANVEXTPROC_HPP)(GLuint,GLenum,GLboolean *);
static inline void GetInvariantBooleanvEXT(GLuint id1,GLenum value1,GLboolean * data1)
{
	static PFNGLGETINVARIANTBOOLEANVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETINVARIANTBOOLEANVEXTPROC_HPP>(_impl::_get_proc_address("glGetInvariantBooleanvEXT","GL_EXT_vertex_shader"));
	 fn(id1,value1,data1);
}
typedef void (*PFNGLGETINVARIANTFLOATVEXTPROC_HPP)(GLuint,GLenum,GLfloat *);
static inline void GetInvariantFloatvEXT(GLuint id1,GLenum value1,GLfloat * data1)
{
	static PFNGLGETINVARIANTFLOATVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETINVARIANTFLOATVEXTPROC_HPP>(_impl::_get_proc_address("glGetInvariantFloatvEXT","GL_EXT_vertex_shader"));
	 fn(id1,value1,data1);
}
typedef void (*PFNGLGETINVARIANTINTEGERVEXTPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetInvariantIntegervEXT(GLuint id1,GLenum value1,GLint * data1)
{
	static PFNGLGETINVARIANTINTEGERVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETINVARIANTINTEGERVEXTPROC_HPP>(_impl::_get_proc_address("glGetInvariantIntegervEXT","GL_EXT_vertex_shader"));
	 fn(id1,value1,data1);
}
typedef void (*PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC_HPP)(GLuint,GLenum,GLboolean *);
static inline void GetLocalConstantBooleanvEXT(GLuint id1,GLenum value1,GLboolean * data1)
{
	static PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC_HPP>(_impl::_get_proc_address("glGetLocalConstantBooleanvEXT","GL_EXT_vertex_shader"));
	 fn(id1,value1,data1);
}
typedef void (*PFNGLGETLOCALCONSTANTFLOATVEXTPROC_HPP)(GLuint,GLenum,GLfloat *);
static inline void GetLocalConstantFloatvEXT(GLuint id1,GLenum value1,GLfloat * data1)
{
	static PFNGLGETLOCALCONSTANTFLOATVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETLOCALCONSTANTFLOATVEXTPROC_HPP>(_impl::_get_proc_address("glGetLocalConstantFloatvEXT","GL_EXT_vertex_shader"));
	 fn(id1,value1,data1);
}
typedef void (*PFNGLGETLOCALCONSTANTINTEGERVEXTPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetLocalConstantIntegervEXT(GLuint id1,GLenum value1,GLint * data1)
{
	static PFNGLGETLOCALCONSTANTINTEGERVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETLOCALCONSTANTINTEGERVEXTPROC_HPP>(_impl::_get_proc_address("glGetLocalConstantIntegervEXT","GL_EXT_vertex_shader"));
	 fn(id1,value1,data1);
}
typedef void (*PFNGLGETVARIANTBOOLEANVEXTPROC_HPP)(GLuint,GLenum,GLboolean *);
static inline void GetVariantBooleanvEXT(GLuint id1,GLenum value1,GLboolean * data1)
{
	static PFNGLGETVARIANTBOOLEANVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETVARIANTBOOLEANVEXTPROC_HPP>(_impl::_get_proc_address("glGetVariantBooleanvEXT","GL_EXT_vertex_shader"));
	 fn(id1,value1,data1);
}
typedef void (*PFNGLGETVARIANTFLOATVEXTPROC_HPP)(GLuint,GLenum,GLfloat *);
static inline void GetVariantFloatvEXT(GLuint id1,GLenum value1,GLfloat * data1)
{
	static PFNGLGETVARIANTFLOATVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETVARIANTFLOATVEXTPROC_HPP>(_impl::_get_proc_address("glGetVariantFloatvEXT","GL_EXT_vertex_shader"));
	 fn(id1,value1,data1);
}
typedef void (*PFNGLGETVARIANTINTEGERVEXTPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetVariantIntegervEXT(GLuint id1,GLenum value1,GLint * data1)
{
	static PFNGLGETVARIANTINTEGERVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETVARIANTINTEGERVEXTPROC_HPP>(_impl::_get_proc_address("glGetVariantIntegervEXT","GL_EXT_vertex_shader"));
	 fn(id1,value1,data1);
}
typedef void (*PFNGLGETVARIANTPOINTERVEXTPROC_HPP)(GLuint,GLenum,void **);
static inline void GetVariantPointervEXT(GLuint id1,GLenum value1,void ** data1)
{
	static PFNGLGETVARIANTPOINTERVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETVARIANTPOINTERVEXTPROC_HPP>(_impl::_get_proc_address("glGetVariantPointervEXT","GL_EXT_vertex_shader"));
	 fn(id1,value1,data1);
}
typedef void (*PFNGLINSERTCOMPONENTEXTPROC_HPP)(GLuint,GLuint,GLuint);
static inline void InsertComponentEXT(GLuint res1,GLuint src1,GLuint num1)
{
	static PFNGLINSERTCOMPONENTEXTPROC_HPP fn=reinterpret_cast<PFNGLINSERTCOMPONENTEXTPROC_HPP>(_impl::_get_proc_address("glInsertComponentEXT","GL_EXT_vertex_shader"));
	 fn(res1,src1,num1);
}
typedef GLboolean (*PFNGLISVARIANTENABLEDEXTPROC_HPP)(GLuint,GLenum);
static inline GLboolean IsVariantEnabledEXT(GLuint id1,GLenum cap1)
{
	static PFNGLISVARIANTENABLEDEXTPROC_HPP fn=reinterpret_cast<PFNGLISVARIANTENABLEDEXTPROC_HPP>(_impl::_get_proc_address("glIsVariantEnabledEXT","GL_EXT_vertex_shader"));
	return fn(id1,cap1);
}
typedef void (*PFNGLSETINVARIANTEXTPROC_HPP)(GLuint,GLenum,const void *);
static inline void SetInvariantEXT(GLuint id1,GLenum type1,const void * addr1)
{
	static PFNGLSETINVARIANTEXTPROC_HPP fn=reinterpret_cast<PFNGLSETINVARIANTEXTPROC_HPP>(_impl::_get_proc_address("glSetInvariantEXT","GL_EXT_vertex_shader"));
	 fn(id1,type1,addr1);
}
typedef void (*PFNGLSETLOCALCONSTANTEXTPROC_HPP)(GLuint,GLenum,const void *);
static inline void SetLocalConstantEXT(GLuint id1,GLenum type1,const void * addr1)
{
	static PFNGLSETLOCALCONSTANTEXTPROC_HPP fn=reinterpret_cast<PFNGLSETLOCALCONSTANTEXTPROC_HPP>(_impl::_get_proc_address("glSetLocalConstantEXT","GL_EXT_vertex_shader"));
	 fn(id1,type1,addr1);
}
typedef void (*PFNGLSHADEROP1EXTPROC_HPP)(GLenum,GLuint,GLuint);
static inline void ShaderOp1EXT(GLenum op1,GLuint res1,GLuint arg11)
{
	static PFNGLSHADEROP1EXTPROC_HPP fn=reinterpret_cast<PFNGLSHADEROP1EXTPROC_HPP>(_impl::_get_proc_address("glShaderOp1EXT","GL_EXT_vertex_shader"));
	 fn(op1,res1,arg11);
}
typedef void (*PFNGLSHADEROP2EXTPROC_HPP)(GLenum,GLuint,GLuint,GLuint);
static inline void ShaderOp2EXT(GLenum op1,GLuint res1,GLuint arg11,GLuint arg21)
{
	static PFNGLSHADEROP2EXTPROC_HPP fn=reinterpret_cast<PFNGLSHADEROP2EXTPROC_HPP>(_impl::_get_proc_address("glShaderOp2EXT","GL_EXT_vertex_shader"));
	 fn(op1,res1,arg11,arg21);
}
typedef void (*PFNGLSHADEROP3EXTPROC_HPP)(GLenum,GLuint,GLuint,GLuint,GLuint);
static inline void ShaderOp3EXT(GLenum op1,GLuint res1,GLuint arg11,GLuint arg21,GLuint arg31)
{
	static PFNGLSHADEROP3EXTPROC_HPP fn=reinterpret_cast<PFNGLSHADEROP3EXTPROC_HPP>(_impl::_get_proc_address("glShaderOp3EXT","GL_EXT_vertex_shader"));
	 fn(op1,res1,arg11,arg21,arg31);
}
typedef void (*PFNGLSWIZZLEEXTPROC_HPP)(GLuint,GLuint,GLenum,GLenum,GLenum,GLenum);
static inline void SwizzleEXT(GLuint res1,GLuint in1,GLenum outX1,GLenum outY1,GLenum outZ1,GLenum outW1)
{
	static PFNGLSWIZZLEEXTPROC_HPP fn=reinterpret_cast<PFNGLSWIZZLEEXTPROC_HPP>(_impl::_get_proc_address("glSwizzleEXT","GL_EXT_vertex_shader"));
	 fn(res1,in1,outX1,outY1,outZ1,outW1);
}
typedef void (*PFNGLVARIANTPOINTEREXTPROC_HPP)(GLuint,GLenum,GLuint,const void *);
static inline void VariantPointerEXT(GLuint id1,GLenum type1,GLuint stride1,const void * addr1)
{
	static PFNGLVARIANTPOINTEREXTPROC_HPP fn=reinterpret_cast<PFNGLVARIANTPOINTEREXTPROC_HPP>(_impl::_get_proc_address("glVariantPointerEXT","GL_EXT_vertex_shader"));
	 fn(id1,type1,stride1,addr1);
}
typedef void (*PFNGLVARIANTBVEXTPROC_HPP)(GLuint,const GLbyte *);
static inline void VariantbvEXT(GLuint id1,const GLbyte * addr1)
{
	static PFNGLVARIANTBVEXTPROC_HPP fn=reinterpret_cast<PFNGLVARIANTBVEXTPROC_HPP>(_impl::_get_proc_address("glVariantbvEXT","GL_EXT_vertex_shader"));
	 fn(id1,addr1);
}
typedef void (*PFNGLVARIANTDVEXTPROC_HPP)(GLuint,const GLdouble *);
static inline void VariantdvEXT(GLuint id1,const GLdouble * addr1)
{
	static PFNGLVARIANTDVEXTPROC_HPP fn=reinterpret_cast<PFNGLVARIANTDVEXTPROC_HPP>(_impl::_get_proc_address("glVariantdvEXT","GL_EXT_vertex_shader"));
	 fn(id1,addr1);
}
typedef void (*PFNGLVARIANTFVEXTPROC_HPP)(GLuint,const GLfloat *);
static inline void VariantfvEXT(GLuint id1,const GLfloat * addr1)
{
	static PFNGLVARIANTFVEXTPROC_HPP fn=reinterpret_cast<PFNGLVARIANTFVEXTPROC_HPP>(_impl::_get_proc_address("glVariantfvEXT","GL_EXT_vertex_shader"));
	 fn(id1,addr1);
}
typedef void (*PFNGLVARIANTIVEXTPROC_HPP)(GLuint,const GLint *);
static inline void VariantivEXT(GLuint id1,const GLint * addr1)
{
	static PFNGLVARIANTIVEXTPROC_HPP fn=reinterpret_cast<PFNGLVARIANTIVEXTPROC_HPP>(_impl::_get_proc_address("glVariantivEXT","GL_EXT_vertex_shader"));
	 fn(id1,addr1);
}
typedef void (*PFNGLVARIANTSVEXTPROC_HPP)(GLuint,const GLshort *);
static inline void VariantsvEXT(GLuint id1,const GLshort * addr1)
{
	static PFNGLVARIANTSVEXTPROC_HPP fn=reinterpret_cast<PFNGLVARIANTSVEXTPROC_HPP>(_impl::_get_proc_address("glVariantsvEXT","GL_EXT_vertex_shader"));
	 fn(id1,addr1);
}
typedef void (*PFNGLVARIANTUBVEXTPROC_HPP)(GLuint,const GLubyte *);
static inline void VariantubvEXT(GLuint id1,const GLubyte * addr1)
{
	static PFNGLVARIANTUBVEXTPROC_HPP fn=reinterpret_cast<PFNGLVARIANTUBVEXTPROC_HPP>(_impl::_get_proc_address("glVariantubvEXT","GL_EXT_vertex_shader"));
	 fn(id1,addr1);
}
typedef void (*PFNGLVARIANTUIVEXTPROC_HPP)(GLuint,const GLuint *);
static inline void VariantuivEXT(GLuint id1,const GLuint * addr1)
{
	static PFNGLVARIANTUIVEXTPROC_HPP fn=reinterpret_cast<PFNGLVARIANTUIVEXTPROC_HPP>(_impl::_get_proc_address("glVariantuivEXT","GL_EXT_vertex_shader"));
	 fn(id1,addr1);
}
typedef void (*PFNGLVARIANTUSVEXTPROC_HPP)(GLuint,const GLushort *);
static inline void VariantusvEXT(GLuint id1,const GLushort * addr1)
{
	static PFNGLVARIANTUSVEXTPROC_HPP fn=reinterpret_cast<PFNGLVARIANTUSVEXTPROC_HPP>(_impl::_get_proc_address("glVariantusvEXT","GL_EXT_vertex_shader"));
	 fn(id1,addr1);
}
typedef void (*PFNGLWRITEMASKEXTPROC_HPP)(GLuint,GLuint,GLenum,GLenum,GLenum,GLenum);
static inline void WriteMaskEXT(GLuint res1,GLuint in1,GLenum outX1,GLenum outY1,GLenum outZ1,GLenum outW1)
{
	static PFNGLWRITEMASKEXTPROC_HPP fn=reinterpret_cast<PFNGLWRITEMASKEXTPROC_HPP>(_impl::_get_proc_address("glWriteMaskEXT","GL_EXT_vertex_shader"));
	 fn(res1,in1,outX1,outY1,outZ1,outW1);
}}
#endif

#ifndef GL_EXT_vertex_weighting
#define GL_EXT_vertex_weighting
#ifndef GL_MODELVIEW0_STACK_DEPTH_EXT
#define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3
#endif //GL_MODELVIEW0_STACK_DEPTH_EXT
#ifndef GL_MODELVIEW0_MATRIX_EXT
#define GL_MODELVIEW0_MATRIX_EXT 0x0BA6
#endif //GL_MODELVIEW0_MATRIX_EXT
#ifndef GL_MODELVIEW0_EXT
#define GL_MODELVIEW0_EXT 0x1700
#endif //GL_MODELVIEW0_EXT
#ifndef GL_MODELVIEW1_STACK_DEPTH_EXT
#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502
#endif //GL_MODELVIEW1_STACK_DEPTH_EXT
#ifndef GL_MODELVIEW1_MATRIX_EXT
#define GL_MODELVIEW1_MATRIX_EXT 0x8506
#endif //GL_MODELVIEW1_MATRIX_EXT
#ifndef GL_VERTEX_WEIGHTING_EXT
#define GL_VERTEX_WEIGHTING_EXT 0x8509
#endif //GL_VERTEX_WEIGHTING_EXT
#ifndef GL_MODELVIEW1_EXT
#define GL_MODELVIEW1_EXT 0x850A
#endif //GL_MODELVIEW1_EXT
#ifndef GL_CURRENT_VERTEX_WEIGHT_EXT
#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B
#endif //GL_CURRENT_VERTEX_WEIGHT_EXT
#ifndef GL_VERTEX_WEIGHT_ARRAY_EXT
#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C
#endif //GL_VERTEX_WEIGHT_ARRAY_EXT
#ifndef GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT
#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D
#endif //GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT
#ifndef GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT
#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E
#endif //GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT
#ifndef GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT
#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F
#endif //GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT
#ifndef GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT
#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510
#endif //GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLVERTEXWEIGHTPOINTEREXTPROC_HPP)(GLint,GLenum,GLsizei,const void *);
static inline void VertexWeightPointerEXT(GLint size1,GLenum type1,GLsizei stride1,const void * pointer1)
{
	static PFNGLVERTEXWEIGHTPOINTEREXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXWEIGHTPOINTEREXTPROC_HPP>(_impl::_get_proc_address("glVertexWeightPointerEXT","GL_EXT_vertex_weighting"));
	 fn(size1,type1,stride1,pointer1);
}
typedef void (*PFNGLVERTEXWEIGHTFEXTPROC_HPP)(GLfloat);
static inline void VertexWeightfEXT(GLfloat weight1)
{
	static PFNGLVERTEXWEIGHTFEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXWEIGHTFEXTPROC_HPP>(_impl::_get_proc_address("glVertexWeightfEXT","GL_EXT_vertex_weighting"));
	 fn(weight1);
}
typedef void (*PFNGLVERTEXWEIGHTFVEXTPROC_HPP)(const GLfloat *);
static inline void VertexWeightfvEXT(const GLfloat * weight1)
{
	static PFNGLVERTEXWEIGHTFVEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXWEIGHTFVEXTPROC_HPP>(_impl::_get_proc_address("glVertexWeightfvEXT","GL_EXT_vertex_weighting"));
	 fn(weight1);
}}
#endif

#ifndef GL_EXT_x11_sync_object
#define GL_EXT_x11_sync_object
#ifndef GL_SYNC_X11_FENCE_EXT
#define GL_SYNC_X11_FENCE_EXT 0x90E1
#endif //GL_SYNC_X11_FENCE_EXT
extern "C" {
}
namespace gl{

typedef GLsync (*PFNGLIMPORTSYNCEXTPROC_HPP)(GLenum,GLintptr,GLbitfield);
static inline GLsync ImportSyncEXT(GLenum external_sync_type1,GLintptr external_sync1,GLbitfield flags1)
{
	static PFNGLIMPORTSYNCEXTPROC_HPP fn=reinterpret_cast<PFNGLIMPORTSYNCEXTPROC_HPP>(_impl::_get_proc_address("glImportSyncEXT","GL_EXT_x11_sync_object"));
	return fn(external_sync_type1,external_sync1,flags1);
}}
#endif

#ifndef GL_GREMEDY_frame_terminator
#define GL_GREMEDY_frame_terminator
extern "C" {
}
namespace gl{

typedef void (*PFNGLFRAMETERMINATORGREMEDYPROC_HPP)();
static inline void FrameTerminatorGREMEDY()
{
	static PFNGLFRAMETERMINATORGREMEDYPROC_HPP fn=reinterpret_cast<PFNGLFRAMETERMINATORGREMEDYPROC_HPP>(_impl::_get_proc_address("glFrameTerminatorGREMEDY","GL_GREMEDY_frame_terminator"));
	 fn();
}}
#endif

#ifndef GL_GREMEDY_string_marker
#define GL_GREMEDY_string_marker
extern "C" {
}
namespace gl{

typedef void (*PFNGLSTRINGMARKERGREMEDYPROC_HPP)(GLsizei,const void *);
static inline void StringMarkerGREMEDY(GLsizei len1,const void * string1)
{
	static PFNGLSTRINGMARKERGREMEDYPROC_HPP fn=reinterpret_cast<PFNGLSTRINGMARKERGREMEDYPROC_HPP>(_impl::_get_proc_address("glStringMarkerGREMEDY","GL_GREMEDY_string_marker"));
	 fn(len1,string1);
}}
#endif

#ifndef GL_HP_convolution_border_modes
#define GL_HP_convolution_border_modes
#ifndef GL_IGNORE_BORDER_HP
#define GL_IGNORE_BORDER_HP 0x8150
#endif //GL_IGNORE_BORDER_HP
#ifndef GL_CONSTANT_BORDER_HP
#define GL_CONSTANT_BORDER_HP 0x8151
#endif //GL_CONSTANT_BORDER_HP
#ifndef GL_REPLICATE_BORDER_HP
#define GL_REPLICATE_BORDER_HP 0x8153
#endif //GL_REPLICATE_BORDER_HP
#ifndef GL_CONVOLUTION_BORDER_COLOR_HP
#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154
#endif //GL_CONVOLUTION_BORDER_COLOR_HP
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_HP_image_transform
#define GL_HP_image_transform
#ifndef GL_IMAGE_SCALE_X_HP
#define GL_IMAGE_SCALE_X_HP 0x8155
#endif //GL_IMAGE_SCALE_X_HP
#ifndef GL_IMAGE_SCALE_Y_HP
#define GL_IMAGE_SCALE_Y_HP 0x8156
#endif //GL_IMAGE_SCALE_Y_HP
#ifndef GL_IMAGE_TRANSLATE_X_HP
#define GL_IMAGE_TRANSLATE_X_HP 0x8157
#endif //GL_IMAGE_TRANSLATE_X_HP
#ifndef GL_IMAGE_TRANSLATE_Y_HP
#define GL_IMAGE_TRANSLATE_Y_HP 0x8158
#endif //GL_IMAGE_TRANSLATE_Y_HP
#ifndef GL_IMAGE_ROTATE_ANGLE_HP
#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159
#endif //GL_IMAGE_ROTATE_ANGLE_HP
#ifndef GL_IMAGE_ROTATE_ORIGIN_X_HP
#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A
#endif //GL_IMAGE_ROTATE_ORIGIN_X_HP
#ifndef GL_IMAGE_ROTATE_ORIGIN_Y_HP
#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B
#endif //GL_IMAGE_ROTATE_ORIGIN_Y_HP
#ifndef GL_IMAGE_MAG_FILTER_HP
#define GL_IMAGE_MAG_FILTER_HP 0x815C
#endif //GL_IMAGE_MAG_FILTER_HP
#ifndef GL_IMAGE_MIN_FILTER_HP
#define GL_IMAGE_MIN_FILTER_HP 0x815D
#endif //GL_IMAGE_MIN_FILTER_HP
#ifndef GL_IMAGE_CUBIC_WEIGHT_HP
#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E
#endif //GL_IMAGE_CUBIC_WEIGHT_HP
#ifndef GL_CUBIC_HP
#define GL_CUBIC_HP 0x815F
#endif //GL_CUBIC_HP
#ifndef GL_AVERAGE_HP
#define GL_AVERAGE_HP 0x8160
#endif //GL_AVERAGE_HP
#ifndef GL_IMAGE_TRANSFORM_2D_HP
#define GL_IMAGE_TRANSFORM_2D_HP 0x8161
#endif //GL_IMAGE_TRANSFORM_2D_HP
#ifndef GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP
#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162
#endif //GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP
#ifndef GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP
#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163
#endif //GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC_HPP)(GLenum,GLenum,GLfloat *);
static inline void GetImageTransformParameterfvHP(GLenum target1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC_HPP fn=reinterpret_cast<PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC_HPP>(_impl::_get_proc_address("glGetImageTransformParameterfvHP","GL_HP_image_transform"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetImageTransformParameterivHP(GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC_HPP fn=reinterpret_cast<PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC_HPP>(_impl::_get_proc_address("glGetImageTransformParameterivHP","GL_HP_image_transform"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLIMAGETRANSFORMPARAMETERFHPPROC_HPP)(GLenum,GLenum,GLfloat);
static inline void ImageTransformParameterfHP(GLenum target1,GLenum pname1,GLfloat param1)
{
	static PFNGLIMAGETRANSFORMPARAMETERFHPPROC_HPP fn=reinterpret_cast<PFNGLIMAGETRANSFORMPARAMETERFHPPROC_HPP>(_impl::_get_proc_address("glImageTransformParameterfHP","GL_HP_image_transform"));
	 fn(target1,pname1,param1);
}
typedef void (*PFNGLIMAGETRANSFORMPARAMETERFVHPPROC_HPP)(GLenum,GLenum,const GLfloat *);
static inline void ImageTransformParameterfvHP(GLenum target1,GLenum pname1,const GLfloat * params1)
{
	static PFNGLIMAGETRANSFORMPARAMETERFVHPPROC_HPP fn=reinterpret_cast<PFNGLIMAGETRANSFORMPARAMETERFVHPPROC_HPP>(_impl::_get_proc_address("glImageTransformParameterfvHP","GL_HP_image_transform"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLIMAGETRANSFORMPARAMETERIHPPROC_HPP)(GLenum,GLenum,GLint);
static inline void ImageTransformParameteriHP(GLenum target1,GLenum pname1,GLint param1)
{
	static PFNGLIMAGETRANSFORMPARAMETERIHPPROC_HPP fn=reinterpret_cast<PFNGLIMAGETRANSFORMPARAMETERIHPPROC_HPP>(_impl::_get_proc_address("glImageTransformParameteriHP","GL_HP_image_transform"));
	 fn(target1,pname1,param1);
}
typedef void (*PFNGLIMAGETRANSFORMPARAMETERIVHPPROC_HPP)(GLenum,GLenum,const GLint *);
static inline void ImageTransformParameterivHP(GLenum target1,GLenum pname1,const GLint * params1)
{
	static PFNGLIMAGETRANSFORMPARAMETERIVHPPROC_HPP fn=reinterpret_cast<PFNGLIMAGETRANSFORMPARAMETERIVHPPROC_HPP>(_impl::_get_proc_address("glImageTransformParameterivHP","GL_HP_image_transform"));
	 fn(target1,pname1,params1);
}}
#endif

#ifndef GL_HP_occlusion_test
#define GL_HP_occlusion_test
#ifndef GL_OCCLUSION_TEST_HP
#define GL_OCCLUSION_TEST_HP 0x8165
#endif //GL_OCCLUSION_TEST_HP
#ifndef GL_OCCLUSION_TEST_RESULT_HP
#define GL_OCCLUSION_TEST_RESULT_HP 0x8166
#endif //GL_OCCLUSION_TEST_RESULT_HP
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_HP_texture_lighting
#define GL_HP_texture_lighting
#ifndef GL_TEXTURE_LIGHTING_MODE_HP
#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167
#endif //GL_TEXTURE_LIGHTING_MODE_HP
#ifndef GL_TEXTURE_POST_SPECULAR_HP
#define GL_TEXTURE_POST_SPECULAR_HP 0x8168
#endif //GL_TEXTURE_POST_SPECULAR_HP
#ifndef GL_TEXTURE_PRE_SPECULAR_HP
#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169
#endif //GL_TEXTURE_PRE_SPECULAR_HP
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_IBM_cull_vertex
#define GL_IBM_cull_vertex
#ifndef GL_CULL_VERTEX_IBM
#define GL_CULL_VERTEX_IBM 103050
#endif //GL_CULL_VERTEX_IBM
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_IBM_multimode_draw_arrays
#define GL_IBM_multimode_draw_arrays
extern "C" {
}
namespace gl{

typedef void (*PFNGLMULTIMODEDRAWARRAYSIBMPROC_HPP)(const GLenum *,const GLint *,const GLsizei *,GLsizei,GLint);
static inline void MultiModeDrawArraysIBM(const GLenum * mode1,const GLint * first1,const GLsizei * count1,GLsizei primcount1,GLint modestride1)
{
	static PFNGLMULTIMODEDRAWARRAYSIBMPROC_HPP fn=reinterpret_cast<PFNGLMULTIMODEDRAWARRAYSIBMPROC_HPP>(_impl::_get_proc_address("glMultiModeDrawArraysIBM","GL_IBM_multimode_draw_arrays"));
	 fn(mode1,first1,count1,primcount1,modestride1);
}
typedef void (*PFNGLMULTIMODEDRAWELEMENTSIBMPROC_HPP)(const GLenum *,const GLsizei *,GLenum,const void *const*,GLsizei,GLint);
static inline void MultiModeDrawElementsIBM(const GLenum * mode1,const GLsizei * count1,GLenum type1,const void *const* indices1,GLsizei primcount1,GLint modestride1)
{
	static PFNGLMULTIMODEDRAWELEMENTSIBMPROC_HPP fn=reinterpret_cast<PFNGLMULTIMODEDRAWELEMENTSIBMPROC_HPP>(_impl::_get_proc_address("glMultiModeDrawElementsIBM","GL_IBM_multimode_draw_arrays"));
	 fn(mode1,count1,type1,indices1,primcount1,modestride1);
}}
#endif

#ifndef GL_IBM_rasterpos_clip
#define GL_IBM_rasterpos_clip
#ifndef GL_RASTER_POSITION_UNCLIPPED_IBM
#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262
#endif //GL_RASTER_POSITION_UNCLIPPED_IBM
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_IBM_static_data
#define GL_IBM_static_data
#ifndef GL_ALL_STATIC_DATA_IBM
#define GL_ALL_STATIC_DATA_IBM 103060
#endif //GL_ALL_STATIC_DATA_IBM
#ifndef GL_STATIC_VERTEX_ARRAY_IBM
#define GL_STATIC_VERTEX_ARRAY_IBM 103061
#endif //GL_STATIC_VERTEX_ARRAY_IBM
extern "C" {
}
namespace gl{

typedef void (*PFNGLFLUSHSTATICDATAIBMPROC_HPP)(GLenum);
static inline void FlushStaticDataIBM(GLenum target1)
{
	static PFNGLFLUSHSTATICDATAIBMPROC_HPP fn=reinterpret_cast<PFNGLFLUSHSTATICDATAIBMPROC_HPP>(_impl::_get_proc_address("glFlushStaticDataIBM","GL_IBM_static_data"));
	 fn(target1);
}}
#endif

#ifndef GL_IBM_texture_mirrored_repeat
#define GL_IBM_texture_mirrored_repeat
#ifndef GL_MIRRORED_REPEAT_IBM
#define GL_MIRRORED_REPEAT_IBM 0x8370
#endif //GL_MIRRORED_REPEAT_IBM
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_IBM_vertex_array_lists
#define GL_IBM_vertex_array_lists
#ifndef GL_VERTEX_ARRAY_LIST_IBM
#define GL_VERTEX_ARRAY_LIST_IBM 103070
#endif //GL_VERTEX_ARRAY_LIST_IBM
#ifndef GL_NORMAL_ARRAY_LIST_IBM
#define GL_NORMAL_ARRAY_LIST_IBM 103071
#endif //GL_NORMAL_ARRAY_LIST_IBM
#ifndef GL_COLOR_ARRAY_LIST_IBM
#define GL_COLOR_ARRAY_LIST_IBM 103072
#endif //GL_COLOR_ARRAY_LIST_IBM
#ifndef GL_INDEX_ARRAY_LIST_IBM
#define GL_INDEX_ARRAY_LIST_IBM 103073
#endif //GL_INDEX_ARRAY_LIST_IBM
#ifndef GL_TEXTURE_COORD_ARRAY_LIST_IBM
#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074
#endif //GL_TEXTURE_COORD_ARRAY_LIST_IBM
#ifndef GL_EDGE_FLAG_ARRAY_LIST_IBM
#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075
#endif //GL_EDGE_FLAG_ARRAY_LIST_IBM
#ifndef GL_FOG_COORDINATE_ARRAY_LIST_IBM
#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076
#endif //GL_FOG_COORDINATE_ARRAY_LIST_IBM
#ifndef GL_SECONDARY_COLOR_ARRAY_LIST_IBM
#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077
#endif //GL_SECONDARY_COLOR_ARRAY_LIST_IBM
#ifndef GL_VERTEX_ARRAY_LIST_STRIDE_IBM
#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080
#endif //GL_VERTEX_ARRAY_LIST_STRIDE_IBM
#ifndef GL_NORMAL_ARRAY_LIST_STRIDE_IBM
#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081
#endif //GL_NORMAL_ARRAY_LIST_STRIDE_IBM
#ifndef GL_COLOR_ARRAY_LIST_STRIDE_IBM
#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082
#endif //GL_COLOR_ARRAY_LIST_STRIDE_IBM
#ifndef GL_INDEX_ARRAY_LIST_STRIDE_IBM
#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083
#endif //GL_INDEX_ARRAY_LIST_STRIDE_IBM
#ifndef GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM
#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084
#endif //GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM
#ifndef GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM
#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085
#endif //GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM
#ifndef GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM
#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086
#endif //GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM
#ifndef GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM
#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087
#endif //GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM
extern "C" {
}
namespace gl{

typedef void (*PFNGLCOLORPOINTERLISTIBMPROC_HPP)(GLint,GLenum,GLint,const void **,GLint);
static inline void ColorPointerListIBM(GLint size1,GLenum type1,GLint stride1,const void ** pointer1,GLint ptrstride1)
{
	static PFNGLCOLORPOINTERLISTIBMPROC_HPP fn=reinterpret_cast<PFNGLCOLORPOINTERLISTIBMPROC_HPP>(_impl::_get_proc_address("glColorPointerListIBM","GL_IBM_vertex_array_lists"));
	 fn(size1,type1,stride1,pointer1,ptrstride1);
}
typedef void (*PFNGLEDGEFLAGPOINTERLISTIBMPROC_HPP)(GLint,const GLboolean **,GLint);
static inline void EdgeFlagPointerListIBM(GLint stride1,const GLboolean ** pointer1,GLint ptrstride1)
{
	static PFNGLEDGEFLAGPOINTERLISTIBMPROC_HPP fn=reinterpret_cast<PFNGLEDGEFLAGPOINTERLISTIBMPROC_HPP>(_impl::_get_proc_address("glEdgeFlagPointerListIBM","GL_IBM_vertex_array_lists"));
	 fn(stride1,pointer1,ptrstride1);
}
typedef void (*PFNGLFOGCOORDPOINTERLISTIBMPROC_HPP)(GLenum,GLint,const void **,GLint);
static inline void FogCoordPointerListIBM(GLenum type1,GLint stride1,const void ** pointer1,GLint ptrstride1)
{
	static PFNGLFOGCOORDPOINTERLISTIBMPROC_HPP fn=reinterpret_cast<PFNGLFOGCOORDPOINTERLISTIBMPROC_HPP>(_impl::_get_proc_address("glFogCoordPointerListIBM","GL_IBM_vertex_array_lists"));
	 fn(type1,stride1,pointer1,ptrstride1);
}
typedef void (*PFNGLINDEXPOINTERLISTIBMPROC_HPP)(GLenum,GLint,const void **,GLint);
static inline void IndexPointerListIBM(GLenum type1,GLint stride1,const void ** pointer1,GLint ptrstride1)
{
	static PFNGLINDEXPOINTERLISTIBMPROC_HPP fn=reinterpret_cast<PFNGLINDEXPOINTERLISTIBMPROC_HPP>(_impl::_get_proc_address("glIndexPointerListIBM","GL_IBM_vertex_array_lists"));
	 fn(type1,stride1,pointer1,ptrstride1);
}
typedef void (*PFNGLNORMALPOINTERLISTIBMPROC_HPP)(GLenum,GLint,const void **,GLint);
static inline void NormalPointerListIBM(GLenum type1,GLint stride1,const void ** pointer1,GLint ptrstride1)
{
	static PFNGLNORMALPOINTERLISTIBMPROC_HPP fn=reinterpret_cast<PFNGLNORMALPOINTERLISTIBMPROC_HPP>(_impl::_get_proc_address("glNormalPointerListIBM","GL_IBM_vertex_array_lists"));
	 fn(type1,stride1,pointer1,ptrstride1);
}
typedef void (*PFNGLSECONDARYCOLORPOINTERLISTIBMPROC_HPP)(GLint,GLenum,GLint,const void **,GLint);
static inline void SecondaryColorPointerListIBM(GLint size1,GLenum type1,GLint stride1,const void ** pointer1,GLint ptrstride1)
{
	static PFNGLSECONDARYCOLORPOINTERLISTIBMPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLORPOINTERLISTIBMPROC_HPP>(_impl::_get_proc_address("glSecondaryColorPointerListIBM","GL_IBM_vertex_array_lists"));
	 fn(size1,type1,stride1,pointer1,ptrstride1);
}
typedef void (*PFNGLTEXCOORDPOINTERLISTIBMPROC_HPP)(GLint,GLenum,GLint,const void **,GLint);
static inline void TexCoordPointerListIBM(GLint size1,GLenum type1,GLint stride1,const void ** pointer1,GLint ptrstride1)
{
	static PFNGLTEXCOORDPOINTERLISTIBMPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORDPOINTERLISTIBMPROC_HPP>(_impl::_get_proc_address("glTexCoordPointerListIBM","GL_IBM_vertex_array_lists"));
	 fn(size1,type1,stride1,pointer1,ptrstride1);
}
typedef void (*PFNGLVERTEXPOINTERLISTIBMPROC_HPP)(GLint,GLenum,GLint,const void **,GLint);
static inline void VertexPointerListIBM(GLint size1,GLenum type1,GLint stride1,const void ** pointer1,GLint ptrstride1)
{
	static PFNGLVERTEXPOINTERLISTIBMPROC_HPP fn=reinterpret_cast<PFNGLVERTEXPOINTERLISTIBMPROC_HPP>(_impl::_get_proc_address("glVertexPointerListIBM","GL_IBM_vertex_array_lists"));
	 fn(size1,type1,stride1,pointer1,ptrstride1);
}}
#endif

#ifndef GL_INGR_blend_func_separate
#define GL_INGR_blend_func_separate
extern "C" {
}
namespace gl{

typedef void (*PFNGLBLENDFUNCSEPARATEINGRPROC_HPP)(GLenum,GLenum,GLenum,GLenum);
static inline void BlendFuncSeparateINGR(GLenum sfactorRGB1,GLenum dfactorRGB1,GLenum sfactorAlpha1,GLenum dfactorAlpha1)
{
	static PFNGLBLENDFUNCSEPARATEINGRPROC_HPP fn=reinterpret_cast<PFNGLBLENDFUNCSEPARATEINGRPROC_HPP>(_impl::_get_proc_address("glBlendFuncSeparateINGR","GL_INGR_blend_func_separate"));
	 fn(sfactorRGB1,dfactorRGB1,sfactorAlpha1,dfactorAlpha1);
}}
#endif

#ifndef GL_INGR_color_clamp
#define GL_INGR_color_clamp
#ifndef GL_RED_MIN_CLAMP_INGR
#define GL_RED_MIN_CLAMP_INGR 0x8560
#endif //GL_RED_MIN_CLAMP_INGR
#ifndef GL_GREEN_MIN_CLAMP_INGR
#define GL_GREEN_MIN_CLAMP_INGR 0x8561
#endif //GL_GREEN_MIN_CLAMP_INGR
#ifndef GL_BLUE_MIN_CLAMP_INGR
#define GL_BLUE_MIN_CLAMP_INGR 0x8562
#endif //GL_BLUE_MIN_CLAMP_INGR
#ifndef GL_ALPHA_MIN_CLAMP_INGR
#define GL_ALPHA_MIN_CLAMP_INGR 0x8563
#endif //GL_ALPHA_MIN_CLAMP_INGR
#ifndef GL_RED_MAX_CLAMP_INGR
#define GL_RED_MAX_CLAMP_INGR 0x8564
#endif //GL_RED_MAX_CLAMP_INGR
#ifndef GL_GREEN_MAX_CLAMP_INGR
#define GL_GREEN_MAX_CLAMP_INGR 0x8565
#endif //GL_GREEN_MAX_CLAMP_INGR
#ifndef GL_BLUE_MAX_CLAMP_INGR
#define GL_BLUE_MAX_CLAMP_INGR 0x8566
#endif //GL_BLUE_MAX_CLAMP_INGR
#ifndef GL_ALPHA_MAX_CLAMP_INGR
#define GL_ALPHA_MAX_CLAMP_INGR 0x8567
#endif //GL_ALPHA_MAX_CLAMP_INGR
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_INGR_interlace_read
#define GL_INGR_interlace_read
#ifndef GL_INTERLACE_READ_INGR
#define GL_INTERLACE_READ_INGR 0x8568
#endif //GL_INTERLACE_READ_INGR
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_INTEL_fragment_shader_ordering
#define GL_INTEL_fragment_shader_ordering
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_INTEL_map_texture
#define GL_INTEL_map_texture
#ifndef GL_LAYOUT_DEFAULT_INTEL
#define GL_LAYOUT_DEFAULT_INTEL 0
#endif //GL_LAYOUT_DEFAULT_INTEL
#ifndef GL_TEXTURE_MEMORY_LAYOUT_INTEL
#define GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF
#endif //GL_TEXTURE_MEMORY_LAYOUT_INTEL
#ifndef GL_LAYOUT_LINEAR_INTEL
#define GL_LAYOUT_LINEAR_INTEL 1
#endif //GL_LAYOUT_LINEAR_INTEL
#ifndef GL_LAYOUT_LINEAR_CPU_CACHED_INTEL
#define GL_LAYOUT_LINEAR_CPU_CACHED_INTEL 2
#endif //GL_LAYOUT_LINEAR_CPU_CACHED_INTEL
extern "C" {
}
namespace gl{

typedef void * (*PFNGLMAPTEXTURE2DINTELPROC_HPP)(GLuint,GLint,GLbitfield,GLint *,GLenum *);
static inline void * MapTexture2DINTEL(GLuint texture1,GLint level1,GLbitfield access1,GLint * stride1,GLenum * layout1)
{
	static PFNGLMAPTEXTURE2DINTELPROC_HPP fn=reinterpret_cast<PFNGLMAPTEXTURE2DINTELPROC_HPP>(_impl::_get_proc_address("glMapTexture2DINTEL","GL_INTEL_map_texture"));
	return fn(texture1,level1,access1,stride1,layout1);
}
typedef void (*PFNGLSYNCTEXTUREINTELPROC_HPP)(GLuint);
static inline void SyncTextureINTEL(GLuint texture1)
{
	static PFNGLSYNCTEXTUREINTELPROC_HPP fn=reinterpret_cast<PFNGLSYNCTEXTUREINTELPROC_HPP>(_impl::_get_proc_address("glSyncTextureINTEL","GL_INTEL_map_texture"));
	 fn(texture1);
}
typedef void (*PFNGLUNMAPTEXTURE2DINTELPROC_HPP)(GLuint,GLint);
static inline void UnmapTexture2DINTEL(GLuint texture1,GLint level1)
{
	static PFNGLUNMAPTEXTURE2DINTELPROC_HPP fn=reinterpret_cast<PFNGLUNMAPTEXTURE2DINTELPROC_HPP>(_impl::_get_proc_address("glUnmapTexture2DINTEL","GL_INTEL_map_texture"));
	 fn(texture1,level1);
}}
#endif

#ifndef GL_INTEL_parallel_arrays
#define GL_INTEL_parallel_arrays
#ifndef GL_PARALLEL_ARRAYS_INTEL
#define GL_PARALLEL_ARRAYS_INTEL 0x83F4
#endif //GL_PARALLEL_ARRAYS_INTEL
#ifndef GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL
#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5
#endif //GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL
#ifndef GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL
#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6
#endif //GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL
#ifndef GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL
#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7
#endif //GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL
#ifndef GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL
#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8
#endif //GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL
extern "C" {
}
namespace gl{

typedef void (*PFNGLCOLORPOINTERVINTELPROC_HPP)(GLint,GLenum,const void **);
static inline void ColorPointervINTEL(GLint size1,GLenum type1,const void ** pointer1)
{
	static PFNGLCOLORPOINTERVINTELPROC_HPP fn=reinterpret_cast<PFNGLCOLORPOINTERVINTELPROC_HPP>(_impl::_get_proc_address("glColorPointervINTEL","GL_INTEL_parallel_arrays"));
	 fn(size1,type1,pointer1);
}
typedef void (*PFNGLNORMALPOINTERVINTELPROC_HPP)(GLenum,const void **);
static inline void NormalPointervINTEL(GLenum type1,const void ** pointer1)
{
	static PFNGLNORMALPOINTERVINTELPROC_HPP fn=reinterpret_cast<PFNGLNORMALPOINTERVINTELPROC_HPP>(_impl::_get_proc_address("glNormalPointervINTEL","GL_INTEL_parallel_arrays"));
	 fn(type1,pointer1);
}
typedef void (*PFNGLTEXCOORDPOINTERVINTELPROC_HPP)(GLint,GLenum,const void **);
static inline void TexCoordPointervINTEL(GLint size1,GLenum type1,const void ** pointer1)
{
	static PFNGLTEXCOORDPOINTERVINTELPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORDPOINTERVINTELPROC_HPP>(_impl::_get_proc_address("glTexCoordPointervINTEL","GL_INTEL_parallel_arrays"));
	 fn(size1,type1,pointer1);
}
typedef void (*PFNGLVERTEXPOINTERVINTELPROC_HPP)(GLint,GLenum,const void **);
static inline void VertexPointervINTEL(GLint size1,GLenum type1,const void ** pointer1)
{
	static PFNGLVERTEXPOINTERVINTELPROC_HPP fn=reinterpret_cast<PFNGLVERTEXPOINTERVINTELPROC_HPP>(_impl::_get_proc_address("glVertexPointervINTEL","GL_INTEL_parallel_arrays"));
	 fn(size1,type1,pointer1);
}}
#endif

#ifndef GL_INTEL_performance_query
#define GL_INTEL_performance_query
#ifndef GL_PERFQUERY_SINGLE_CONTEXT_INTEL
#define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x00000000
#endif //GL_PERFQUERY_SINGLE_CONTEXT_INTEL
#ifndef GL_PERFQUERY_GLOBAL_CONTEXT_INTEL
#define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x00000001
#endif //GL_PERFQUERY_GLOBAL_CONTEXT_INTEL
#ifndef GL_PERFQUERY_DONOT_FLUSH_INTEL
#define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9
#endif //GL_PERFQUERY_DONOT_FLUSH_INTEL
#ifndef GL_PERFQUERY_FLUSH_INTEL
#define GL_PERFQUERY_FLUSH_INTEL 0x83FA
#endif //GL_PERFQUERY_FLUSH_INTEL
#ifndef GL_PERFQUERY_WAIT_INTEL
#define GL_PERFQUERY_WAIT_INTEL 0x83FB
#endif //GL_PERFQUERY_WAIT_INTEL
#ifndef GL_PERFQUERY_COUNTER_EVENT_INTEL
#define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0
#endif //GL_PERFQUERY_COUNTER_EVENT_INTEL
#ifndef GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL
#define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1
#endif //GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL
#ifndef GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL
#define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2
#endif //GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL
#ifndef GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL
#define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3
#endif //GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL
#ifndef GL_PERFQUERY_COUNTER_RAW_INTEL
#define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4
#endif //GL_PERFQUERY_COUNTER_RAW_INTEL
#ifndef GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL
#define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5
#endif //GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL
#ifndef GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL
#define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8
#endif //GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL
#ifndef GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL
#define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9
#endif //GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL
#ifndef GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL
#define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA
#endif //GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL
#ifndef GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL
#define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB
#endif //GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL
#ifndef GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL
#define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC
#endif //GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL
#ifndef GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL
#define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD
#endif //GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL
#ifndef GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL
#define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE
#endif //GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL
#ifndef GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL
#define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF
#endif //GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL
#ifndef GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL
#define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500
#endif //GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL
extern "C" {
}
namespace gl{

typedef void (*PFNGLBEGINPERFQUERYINTELPROC_HPP)(GLuint);
static inline void BeginPerfQueryINTEL(GLuint queryHandle1)
{
	static PFNGLBEGINPERFQUERYINTELPROC_HPP fn=reinterpret_cast<PFNGLBEGINPERFQUERYINTELPROC_HPP>(_impl::_get_proc_address("glBeginPerfQueryINTEL","GL_INTEL_performance_query"));
	 fn(queryHandle1);
}
typedef void (*PFNGLCREATEPERFQUERYINTELPROC_HPP)(GLuint,GLuint *);
static inline void CreatePerfQueryINTEL(GLuint queryId1,GLuint * queryHandle1)
{
	static PFNGLCREATEPERFQUERYINTELPROC_HPP fn=reinterpret_cast<PFNGLCREATEPERFQUERYINTELPROC_HPP>(_impl::_get_proc_address("glCreatePerfQueryINTEL","GL_INTEL_performance_query"));
	 fn(queryId1,queryHandle1);
}
typedef void (*PFNGLDELETEPERFQUERYINTELPROC_HPP)(GLuint);
static inline void DeletePerfQueryINTEL(GLuint queryHandle1)
{
	static PFNGLDELETEPERFQUERYINTELPROC_HPP fn=reinterpret_cast<PFNGLDELETEPERFQUERYINTELPROC_HPP>(_impl::_get_proc_address("glDeletePerfQueryINTEL","GL_INTEL_performance_query"));
	 fn(queryHandle1);
}
typedef void (*PFNGLENDPERFQUERYINTELPROC_HPP)(GLuint);
static inline void EndPerfQueryINTEL(GLuint queryHandle1)
{
	static PFNGLENDPERFQUERYINTELPROC_HPP fn=reinterpret_cast<PFNGLENDPERFQUERYINTELPROC_HPP>(_impl::_get_proc_address("glEndPerfQueryINTEL","GL_INTEL_performance_query"));
	 fn(queryHandle1);
}
typedef void (*PFNGLGETFIRSTPERFQUERYIDINTELPROC_HPP)(GLuint *);
static inline void GetFirstPerfQueryIdINTEL(GLuint * queryId1)
{
	static PFNGLGETFIRSTPERFQUERYIDINTELPROC_HPP fn=reinterpret_cast<PFNGLGETFIRSTPERFQUERYIDINTELPROC_HPP>(_impl::_get_proc_address("glGetFirstPerfQueryIdINTEL","GL_INTEL_performance_query"));
	 fn(queryId1);
}
typedef void (*PFNGLGETNEXTPERFQUERYIDINTELPROC_HPP)(GLuint,GLuint *);
static inline void GetNextPerfQueryIdINTEL(GLuint queryId1,GLuint * nextQueryId1)
{
	static PFNGLGETNEXTPERFQUERYIDINTELPROC_HPP fn=reinterpret_cast<PFNGLGETNEXTPERFQUERYIDINTELPROC_HPP>(_impl::_get_proc_address("glGetNextPerfQueryIdINTEL","GL_INTEL_performance_query"));
	 fn(queryId1,nextQueryId1);
}
typedef void (*PFNGLGETPERFCOUNTERINFOINTELPROC_HPP)(GLuint,GLuint,GLuint,GLchar *,GLuint,GLchar *,GLuint *,GLuint *,GLuint *,GLuint *,GLuint64 *);
static inline void GetPerfCounterInfoINTEL(GLuint queryId1,GLuint counterId1,GLuint counterNameLength1,GLchar * counterName1,GLuint counterDescLength1,GLchar * counterDesc1,GLuint * counterOffset1,GLuint * counterDataSize1,GLuint * counterTypeEnum1,GLuint * counterDataTypeEnum1,GLuint64 * rawCounterMaxValue1)
{
	static PFNGLGETPERFCOUNTERINFOINTELPROC_HPP fn=reinterpret_cast<PFNGLGETPERFCOUNTERINFOINTELPROC_HPP>(_impl::_get_proc_address("glGetPerfCounterInfoINTEL","GL_INTEL_performance_query"));
	 fn(queryId1,counterId1,counterNameLength1,counterName1,counterDescLength1,counterDesc1,counterOffset1,counterDataSize1,counterTypeEnum1,counterDataTypeEnum1,rawCounterMaxValue1);
}
typedef void (*PFNGLGETPERFQUERYDATAINTELPROC_HPP)(GLuint,GLuint,GLsizei,GLvoid *,GLuint *);
static inline void GetPerfQueryDataINTEL(GLuint queryHandle1,GLuint flags1,GLsizei dataSize1,GLvoid * data1,GLuint * bytesWritten1)
{
	static PFNGLGETPERFQUERYDATAINTELPROC_HPP fn=reinterpret_cast<PFNGLGETPERFQUERYDATAINTELPROC_HPP>(_impl::_get_proc_address("glGetPerfQueryDataINTEL","GL_INTEL_performance_query"));
	 fn(queryHandle1,flags1,dataSize1,data1,bytesWritten1);
}
typedef void (*PFNGLGETPERFQUERYIDBYNAMEINTELPROC_HPP)(GLchar *,GLuint *);
static inline void GetPerfQueryIdByNameINTEL(GLchar * queryName1,GLuint * queryId1)
{
	static PFNGLGETPERFQUERYIDBYNAMEINTELPROC_HPP fn=reinterpret_cast<PFNGLGETPERFQUERYIDBYNAMEINTELPROC_HPP>(_impl::_get_proc_address("glGetPerfQueryIdByNameINTEL","GL_INTEL_performance_query"));
	 fn(queryName1,queryId1);
}
typedef void (*PFNGLGETPERFQUERYINFOINTELPROC_HPP)(GLuint,GLuint,GLchar *,GLuint *,GLuint *,GLuint *,GLuint *);
static inline void GetPerfQueryInfoINTEL(GLuint queryId1,GLuint queryNameLength1,GLchar * queryName1,GLuint * dataSize1,GLuint * noCounters1,GLuint * noInstances1,GLuint * capsMask1)
{
	static PFNGLGETPERFQUERYINFOINTELPROC_HPP fn=reinterpret_cast<PFNGLGETPERFQUERYINFOINTELPROC_HPP>(_impl::_get_proc_address("glGetPerfQueryInfoINTEL","GL_INTEL_performance_query"));
	 fn(queryId1,queryNameLength1,queryName1,dataSize1,noCounters1,noInstances1,capsMask1);
}}
#endif

#ifndef GL_KHR_blend_equation_advanced
#define GL_KHR_blend_equation_advanced
#ifndef GL_MULTIPLY_KHR
#define GL_MULTIPLY_KHR 0x9294
#endif //GL_MULTIPLY_KHR
#ifndef GL_SCREEN_KHR
#define GL_SCREEN_KHR 0x9295
#endif //GL_SCREEN_KHR
#ifndef GL_OVERLAY_KHR
#define GL_OVERLAY_KHR 0x9296
#endif //GL_OVERLAY_KHR
#ifndef GL_DARKEN_KHR
#define GL_DARKEN_KHR 0x9297
#endif //GL_DARKEN_KHR
#ifndef GL_LIGHTEN_KHR
#define GL_LIGHTEN_KHR 0x9298
#endif //GL_LIGHTEN_KHR
#ifndef GL_COLORDODGE_KHR
#define GL_COLORDODGE_KHR 0x9299
#endif //GL_COLORDODGE_KHR
#ifndef GL_COLORBURN_KHR
#define GL_COLORBURN_KHR 0x929A
#endif //GL_COLORBURN_KHR
#ifndef GL_HARDLIGHT_KHR
#define GL_HARDLIGHT_KHR 0x929B
#endif //GL_HARDLIGHT_KHR
#ifndef GL_SOFTLIGHT_KHR
#define GL_SOFTLIGHT_KHR 0x929C
#endif //GL_SOFTLIGHT_KHR
#ifndef GL_DIFFERENCE_KHR
#define GL_DIFFERENCE_KHR 0x929E
#endif //GL_DIFFERENCE_KHR
#ifndef GL_EXCLUSION_KHR
#define GL_EXCLUSION_KHR 0x92A0
#endif //GL_EXCLUSION_KHR
#ifndef GL_HSL_HUE_KHR
#define GL_HSL_HUE_KHR 0x92AD
#endif //GL_HSL_HUE_KHR
#ifndef GL_HSL_SATURATION_KHR
#define GL_HSL_SATURATION_KHR 0x92AE
#endif //GL_HSL_SATURATION_KHR
#ifndef GL_HSL_COLOR_KHR
#define GL_HSL_COLOR_KHR 0x92AF
#endif //GL_HSL_COLOR_KHR
#ifndef GL_HSL_LUMINOSITY_KHR
#define GL_HSL_LUMINOSITY_KHR 0x92B0
#endif //GL_HSL_LUMINOSITY_KHR
extern "C" {
}
namespace gl{

typedef void (*PFNGLBLENDBARRIERKHRPROC_HPP)();
static inline void BlendBarrierKHR()
{
	static PFNGLBLENDBARRIERKHRPROC_HPP fn=reinterpret_cast<PFNGLBLENDBARRIERKHRPROC_HPP>(_impl::_get_proc_address("glBlendBarrierKHR","GL_KHR_blend_equation_advanced"));
	 fn();
}}
#endif

#ifndef GL_KHR_blend_equation_advanced_coherent
#define GL_KHR_blend_equation_advanced_coherent
#ifndef GL_BLEND_ADVANCED_COHERENT_KHR
#define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285
#endif //GL_BLEND_ADVANCED_COHERENT_KHR
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_KHR_context_flush_control
#define GL_KHR_context_flush_control
#ifndef GL_NONE
#define GL_NONE 0
#endif //GL_NONE
#ifndef GL_CONTEXT_RELEASE_BEHAVIOR_KHR
#define GL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x82FB
#endif //GL_CONTEXT_RELEASE_BEHAVIOR_KHR
#ifndef GL_CONTEXT_RELEASE_BEHAVIOR
#define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB
#endif //GL_CONTEXT_RELEASE_BEHAVIOR
#ifndef GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR
#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x82FC
#endif //GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR
#ifndef GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH
#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC
#endif //GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_KHR_debug
#define GL_KHR_debug
#ifndef GL_CONTEXT_FLAG_DEBUG_BIT
#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002
#endif //GL_CONTEXT_FLAG_DEBUG_BIT
#ifndef GL_CONTEXT_FLAG_DEBUG_BIT_KHR
#define GL_CONTEXT_FLAG_DEBUG_BIT_KHR 0x00000002
#endif //GL_CONTEXT_FLAG_DEBUG_BIT_KHR
#ifndef GL_STACK_OVERFLOW_KHR
#define GL_STACK_OVERFLOW_KHR 0x0503
#endif //GL_STACK_OVERFLOW_KHR
#ifndef GL_STACK_OVERFLOW
#define GL_STACK_OVERFLOW 0x0503
#endif //GL_STACK_OVERFLOW
#ifndef GL_STACK_UNDERFLOW_KHR
#define GL_STACK_UNDERFLOW_KHR 0x0504
#endif //GL_STACK_UNDERFLOW_KHR
#ifndef GL_STACK_UNDERFLOW
#define GL_STACK_UNDERFLOW 0x0504
#endif //GL_STACK_UNDERFLOW
#ifndef GL_VERTEX_ARRAY_KHR
#define GL_VERTEX_ARRAY_KHR 0x8074
#endif //GL_VERTEX_ARRAY_KHR
#ifndef GL_VERTEX_ARRAY
#define GL_VERTEX_ARRAY 0x8074
#endif //GL_VERTEX_ARRAY
#ifndef GL_DEBUG_OUTPUT_SYNCHRONOUS
#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242
#endif //GL_DEBUG_OUTPUT_SYNCHRONOUS
#ifndef GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR
#define GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR 0x8242
#endif //GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR
#ifndef GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH
#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243
#endif //GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH
#ifndef GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR
#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR 0x8243
#endif //GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR
#ifndef GL_DEBUG_CALLBACK_FUNCTION_KHR
#define GL_DEBUG_CALLBACK_FUNCTION_KHR 0x8244
#endif //GL_DEBUG_CALLBACK_FUNCTION_KHR
#ifndef GL_DEBUG_CALLBACK_FUNCTION
#define GL_DEBUG_CALLBACK_FUNCTION 0x8244
#endif //GL_DEBUG_CALLBACK_FUNCTION
#ifndef GL_DEBUG_CALLBACK_USER_PARAM
#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245
#endif //GL_DEBUG_CALLBACK_USER_PARAM
#ifndef GL_DEBUG_CALLBACK_USER_PARAM_KHR
#define GL_DEBUG_CALLBACK_USER_PARAM_KHR 0x8245
#endif //GL_DEBUG_CALLBACK_USER_PARAM_KHR
#ifndef GL_DEBUG_SOURCE_API_KHR
#define GL_DEBUG_SOURCE_API_KHR 0x8246
#endif //GL_DEBUG_SOURCE_API_KHR
#ifndef GL_DEBUG_SOURCE_API
#define GL_DEBUG_SOURCE_API 0x8246
#endif //GL_DEBUG_SOURCE_API
#ifndef GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR
#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR 0x8247
#endif //GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR
#ifndef GL_DEBUG_SOURCE_WINDOW_SYSTEM
#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247
#endif //GL_DEBUG_SOURCE_WINDOW_SYSTEM
#ifndef GL_DEBUG_SOURCE_SHADER_COMPILER_KHR
#define GL_DEBUG_SOURCE_SHADER_COMPILER_KHR 0x8248
#endif //GL_DEBUG_SOURCE_SHADER_COMPILER_KHR
#ifndef GL_DEBUG_SOURCE_SHADER_COMPILER
#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248
#endif //GL_DEBUG_SOURCE_SHADER_COMPILER
#ifndef GL_DEBUG_SOURCE_THIRD_PARTY_KHR
#define GL_DEBUG_SOURCE_THIRD_PARTY_KHR 0x8249
#endif //GL_DEBUG_SOURCE_THIRD_PARTY_KHR
#ifndef GL_DEBUG_SOURCE_THIRD_PARTY
#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249
#endif //GL_DEBUG_SOURCE_THIRD_PARTY
#ifndef GL_DEBUG_SOURCE_APPLICATION_KHR
#define GL_DEBUG_SOURCE_APPLICATION_KHR 0x824A
#endif //GL_DEBUG_SOURCE_APPLICATION_KHR
#ifndef GL_DEBUG_SOURCE_APPLICATION
#define GL_DEBUG_SOURCE_APPLICATION 0x824A
#endif //GL_DEBUG_SOURCE_APPLICATION
#ifndef GL_DEBUG_SOURCE_OTHER_KHR
#define GL_DEBUG_SOURCE_OTHER_KHR 0x824B
#endif //GL_DEBUG_SOURCE_OTHER_KHR
#ifndef GL_DEBUG_SOURCE_OTHER
#define GL_DEBUG_SOURCE_OTHER 0x824B
#endif //GL_DEBUG_SOURCE_OTHER
#ifndef GL_DEBUG_TYPE_ERROR
#define GL_DEBUG_TYPE_ERROR 0x824C
#endif //GL_DEBUG_TYPE_ERROR
#ifndef GL_DEBUG_TYPE_ERROR_KHR
#define GL_DEBUG_TYPE_ERROR_KHR 0x824C
#endif //GL_DEBUG_TYPE_ERROR_KHR
#ifndef GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR
#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR 0x824D
#endif //GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR
#ifndef GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR
#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D
#endif //GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR
#ifndef GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR
#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E
#endif //GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR
#ifndef GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR
#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR 0x824E
#endif //GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR
#ifndef GL_DEBUG_TYPE_PORTABILITY
#define GL_DEBUG_TYPE_PORTABILITY 0x824F
#endif //GL_DEBUG_TYPE_PORTABILITY
#ifndef GL_DEBUG_TYPE_PORTABILITY_KHR
#define GL_DEBUG_TYPE_PORTABILITY_KHR 0x824F
#endif //GL_DEBUG_TYPE_PORTABILITY_KHR
#ifndef GL_DEBUG_TYPE_PERFORMANCE_KHR
#define GL_DEBUG_TYPE_PERFORMANCE_KHR 0x8250
#endif //GL_DEBUG_TYPE_PERFORMANCE_KHR
#ifndef GL_DEBUG_TYPE_PERFORMANCE
#define GL_DEBUG_TYPE_PERFORMANCE 0x8250
#endif //GL_DEBUG_TYPE_PERFORMANCE
#ifndef GL_DEBUG_TYPE_OTHER_KHR
#define GL_DEBUG_TYPE_OTHER_KHR 0x8251
#endif //GL_DEBUG_TYPE_OTHER_KHR
#ifndef GL_DEBUG_TYPE_OTHER
#define GL_DEBUG_TYPE_OTHER 0x8251
#endif //GL_DEBUG_TYPE_OTHER
#ifndef GL_DEBUG_TYPE_MARKER
#define GL_DEBUG_TYPE_MARKER 0x8268
#endif //GL_DEBUG_TYPE_MARKER
#ifndef GL_DEBUG_TYPE_MARKER_KHR
#define GL_DEBUG_TYPE_MARKER_KHR 0x8268
#endif //GL_DEBUG_TYPE_MARKER_KHR
#ifndef GL_DEBUG_TYPE_PUSH_GROUP_KHR
#define GL_DEBUG_TYPE_PUSH_GROUP_KHR 0x8269
#endif //GL_DEBUG_TYPE_PUSH_GROUP_KHR
#ifndef GL_DEBUG_TYPE_PUSH_GROUP
#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269
#endif //GL_DEBUG_TYPE_PUSH_GROUP
#ifndef GL_DEBUG_TYPE_POP_GROUP
#define GL_DEBUG_TYPE_POP_GROUP 0x826A
#endif //GL_DEBUG_TYPE_POP_GROUP
#ifndef GL_DEBUG_TYPE_POP_GROUP_KHR
#define GL_DEBUG_TYPE_POP_GROUP_KHR 0x826A
#endif //GL_DEBUG_TYPE_POP_GROUP_KHR
#ifndef GL_DEBUG_SEVERITY_NOTIFICATION_KHR
#define GL_DEBUG_SEVERITY_NOTIFICATION_KHR 0x826B
#endif //GL_DEBUG_SEVERITY_NOTIFICATION_KHR
#ifndef GL_DEBUG_SEVERITY_NOTIFICATION
#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B
#endif //GL_DEBUG_SEVERITY_NOTIFICATION
#ifndef GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR
#define GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR 0x826C
#endif //GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR
#ifndef GL_MAX_DEBUG_GROUP_STACK_DEPTH
#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C
#endif //GL_MAX_DEBUG_GROUP_STACK_DEPTH
#ifndef GL_DEBUG_GROUP_STACK_DEPTH_KHR
#define GL_DEBUG_GROUP_STACK_DEPTH_KHR 0x826D
#endif //GL_DEBUG_GROUP_STACK_DEPTH_KHR
#ifndef GL_DEBUG_GROUP_STACK_DEPTH
#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D
#endif //GL_DEBUG_GROUP_STACK_DEPTH
#ifndef GL_BUFFER_KHR
#define GL_BUFFER_KHR 0x82E0
#endif //GL_BUFFER_KHR
#ifndef GL_BUFFER
#define GL_BUFFER 0x82E0
#endif //GL_BUFFER
#ifndef GL_SHADER_KHR
#define GL_SHADER_KHR 0x82E1
#endif //GL_SHADER_KHR
#ifndef GL_SHADER
#define GL_SHADER 0x82E1
#endif //GL_SHADER
#ifndef GL_PROGRAM
#define GL_PROGRAM 0x82E2
#endif //GL_PROGRAM
#ifndef GL_PROGRAM_KHR
#define GL_PROGRAM_KHR 0x82E2
#endif //GL_PROGRAM_KHR
#ifndef GL_QUERY
#define GL_QUERY 0x82E3
#endif //GL_QUERY
#ifndef GL_QUERY_KHR
#define GL_QUERY_KHR 0x82E3
#endif //GL_QUERY_KHR
#ifndef GL_PROGRAM_PIPELINE
#define GL_PROGRAM_PIPELINE 0x82E4
#endif //GL_PROGRAM_PIPELINE
#ifndef GL_SAMPLER_KHR
#define GL_SAMPLER_KHR 0x82E6
#endif //GL_SAMPLER_KHR
#ifndef GL_SAMPLER
#define GL_SAMPLER 0x82E6
#endif //GL_SAMPLER
#ifndef GL_MAX_LABEL_LENGTH
#define GL_MAX_LABEL_LENGTH 0x82E8
#endif //GL_MAX_LABEL_LENGTH
#ifndef GL_MAX_LABEL_LENGTH_KHR
#define GL_MAX_LABEL_LENGTH_KHR 0x82E8
#endif //GL_MAX_LABEL_LENGTH_KHR
#ifndef GL_MAX_DEBUG_MESSAGE_LENGTH
#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143
#endif //GL_MAX_DEBUG_MESSAGE_LENGTH
#ifndef GL_MAX_DEBUG_MESSAGE_LENGTH_KHR
#define GL_MAX_DEBUG_MESSAGE_LENGTH_KHR 0x9143
#endif //GL_MAX_DEBUG_MESSAGE_LENGTH_KHR
#ifndef GL_MAX_DEBUG_LOGGED_MESSAGES
#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144
#endif //GL_MAX_DEBUG_LOGGED_MESSAGES
#ifndef GL_MAX_DEBUG_LOGGED_MESSAGES_KHR
#define GL_MAX_DEBUG_LOGGED_MESSAGES_KHR 0x9144
#endif //GL_MAX_DEBUG_LOGGED_MESSAGES_KHR
#ifndef GL_DEBUG_LOGGED_MESSAGES
#define GL_DEBUG_LOGGED_MESSAGES 0x9145
#endif //GL_DEBUG_LOGGED_MESSAGES
#ifndef GL_DEBUG_LOGGED_MESSAGES_KHR
#define GL_DEBUG_LOGGED_MESSAGES_KHR 0x9145
#endif //GL_DEBUG_LOGGED_MESSAGES_KHR
#ifndef GL_DEBUG_SEVERITY_HIGH
#define GL_DEBUG_SEVERITY_HIGH 0x9146
#endif //GL_DEBUG_SEVERITY_HIGH
#ifndef GL_DEBUG_SEVERITY_HIGH_KHR
#define GL_DEBUG_SEVERITY_HIGH_KHR 0x9146
#endif //GL_DEBUG_SEVERITY_HIGH_KHR
#ifndef GL_DEBUG_SEVERITY_MEDIUM_KHR
#define GL_DEBUG_SEVERITY_MEDIUM_KHR 0x9147
#endif //GL_DEBUG_SEVERITY_MEDIUM_KHR
#ifndef GL_DEBUG_SEVERITY_MEDIUM
#define GL_DEBUG_SEVERITY_MEDIUM 0x9147
#endif //GL_DEBUG_SEVERITY_MEDIUM
#ifndef GL_DEBUG_SEVERITY_LOW_KHR
#define GL_DEBUG_SEVERITY_LOW_KHR 0x9148
#endif //GL_DEBUG_SEVERITY_LOW_KHR
#ifndef GL_DEBUG_SEVERITY_LOW
#define GL_DEBUG_SEVERITY_LOW 0x9148
#endif //GL_DEBUG_SEVERITY_LOW
#ifndef GL_DEBUG_OUTPUT
#define GL_DEBUG_OUTPUT 0x92E0
#endif //GL_DEBUG_OUTPUT
#ifndef GL_DEBUG_OUTPUT_KHR
#define GL_DEBUG_OUTPUT_KHR 0x92E0
#endif //GL_DEBUG_OUTPUT_KHR
extern "C" {
}
namespace gl{

typedef void (*PFNGLDEBUGMESSAGECALLBACKPROC_HPP)(GLDEBUGPROC,const void *);
static inline void DebugMessageCallback(GLDEBUGPROC callback1,const void * userParam1)
{
	static PFNGLDEBUGMESSAGECALLBACKPROC_HPP fn=reinterpret_cast<PFNGLDEBUGMESSAGECALLBACKPROC_HPP>(_impl::_get_proc_address("glDebugMessageCallback","GL_KHR_debug"));
	 fn(callback1,userParam1);
}
typedef void (*PFNGLDEBUGMESSAGECALLBACKKHRPROC_HPP)(GLDEBUGPROCKHR,const void *);
static inline void DebugMessageCallbackKHR(GLDEBUGPROCKHR callback1,const void * userParam1)
{
	static PFNGLDEBUGMESSAGECALLBACKKHRPROC_HPP fn=reinterpret_cast<PFNGLDEBUGMESSAGECALLBACKKHRPROC_HPP>(_impl::_get_proc_address("glDebugMessageCallbackKHR","GL_KHR_debug"));
	 fn(callback1,userParam1);
}
typedef void (*PFNGLDEBUGMESSAGECONTROLPROC_HPP)(GLenum,GLenum,GLenum,GLsizei,const GLuint *,GLboolean);
static inline void DebugMessageControl(GLenum source1,GLenum type1,GLenum severity1,GLsizei count1,const GLuint * ids1,GLboolean enabled1)
{
	static PFNGLDEBUGMESSAGECONTROLPROC_HPP fn=reinterpret_cast<PFNGLDEBUGMESSAGECONTROLPROC_HPP>(_impl::_get_proc_address("glDebugMessageControl","GL_KHR_debug"));
	 fn(source1,type1,severity1,count1,ids1,enabled1);
}
typedef void (*PFNGLDEBUGMESSAGECONTROLKHRPROC_HPP)(GLenum,GLenum,GLenum,GLsizei,const GLuint *,GLboolean);
static inline void DebugMessageControlKHR(GLenum source1,GLenum type1,GLenum severity1,GLsizei count1,const GLuint * ids1,GLboolean enabled1)
{
	static PFNGLDEBUGMESSAGECONTROLKHRPROC_HPP fn=reinterpret_cast<PFNGLDEBUGMESSAGECONTROLKHRPROC_HPP>(_impl::_get_proc_address("glDebugMessageControlKHR","GL_KHR_debug"));
	 fn(source1,type1,severity1,count1,ids1,enabled1);
}
typedef void (*PFNGLDEBUGMESSAGEINSERTPROC_HPP)(GLenum,GLenum,GLuint,GLenum,GLsizei,const GLchar *);
static inline void DebugMessageInsert(GLenum source1,GLenum type1,GLuint id1,GLenum severity1,GLsizei length1,const GLchar * buf1)
{
	static PFNGLDEBUGMESSAGEINSERTPROC_HPP fn=reinterpret_cast<PFNGLDEBUGMESSAGEINSERTPROC_HPP>(_impl::_get_proc_address("glDebugMessageInsert","GL_KHR_debug"));
	 fn(source1,type1,id1,severity1,length1,buf1);
}
typedef void (*PFNGLDEBUGMESSAGEINSERTKHRPROC_HPP)(GLenum,GLenum,GLuint,GLenum,GLsizei,const GLchar *);
static inline void DebugMessageInsertKHR(GLenum source1,GLenum type1,GLuint id1,GLenum severity1,GLsizei length1,const GLchar * buf1)
{
	static PFNGLDEBUGMESSAGEINSERTKHRPROC_HPP fn=reinterpret_cast<PFNGLDEBUGMESSAGEINSERTKHRPROC_HPP>(_impl::_get_proc_address("glDebugMessageInsertKHR","GL_KHR_debug"));
	 fn(source1,type1,id1,severity1,length1,buf1);
}
typedef GLuint (*PFNGLGETDEBUGMESSAGELOGPROC_HPP)(GLuint,GLsizei,GLenum *,GLenum *,GLuint *,GLenum *,GLsizei *,GLchar *);
static inline GLuint GetDebugMessageLog(GLuint count1,GLsizei bufSize1,GLenum * sources1,GLenum * types1,GLuint * ids1,GLenum * severities1,GLsizei * lengths1,GLchar * messageLog1)
{
	static PFNGLGETDEBUGMESSAGELOGPROC_HPP fn=reinterpret_cast<PFNGLGETDEBUGMESSAGELOGPROC_HPP>(_impl::_get_proc_address("glGetDebugMessageLog","GL_KHR_debug"));
	return fn(count1,bufSize1,sources1,types1,ids1,severities1,lengths1,messageLog1);
}
typedef GLuint (*PFNGLGETDEBUGMESSAGELOGKHRPROC_HPP)(GLuint,GLsizei,GLenum *,GLenum *,GLuint *,GLenum *,GLsizei *,GLchar *);
static inline GLuint GetDebugMessageLogKHR(GLuint count1,GLsizei bufSize1,GLenum * sources1,GLenum * types1,GLuint * ids1,GLenum * severities1,GLsizei * lengths1,GLchar * messageLog1)
{
	static PFNGLGETDEBUGMESSAGELOGKHRPROC_HPP fn=reinterpret_cast<PFNGLGETDEBUGMESSAGELOGKHRPROC_HPP>(_impl::_get_proc_address("glGetDebugMessageLogKHR","GL_KHR_debug"));
	return fn(count1,bufSize1,sources1,types1,ids1,severities1,lengths1,messageLog1);
}
typedef void (*PFNGLGETOBJECTLABELPROC_HPP)(GLenum,GLuint,GLsizei,GLsizei *,GLchar *);
static inline void GetObjectLabel(GLenum identifier1,GLuint name1,GLsizei bufSize1,GLsizei * length1,GLchar * label1)
{
	static PFNGLGETOBJECTLABELPROC_HPP fn=reinterpret_cast<PFNGLGETOBJECTLABELPROC_HPP>(_impl::_get_proc_address("glGetObjectLabel","GL_KHR_debug"));
	 fn(identifier1,name1,bufSize1,length1,label1);
}
typedef void (*PFNGLGETOBJECTLABELKHRPROC_HPP)(GLenum,GLuint,GLsizei,GLsizei *,GLchar *);
static inline void GetObjectLabelKHR(GLenum identifier1,GLuint name1,GLsizei bufSize1,GLsizei * length1,GLchar * label1)
{
	static PFNGLGETOBJECTLABELKHRPROC_HPP fn=reinterpret_cast<PFNGLGETOBJECTLABELKHRPROC_HPP>(_impl::_get_proc_address("glGetObjectLabelKHR","GL_KHR_debug"));
	 fn(identifier1,name1,bufSize1,length1,label1);
}
typedef void (*PFNGLGETOBJECTPTRLABELPROC_HPP)(const void *,GLsizei,GLsizei *,GLchar *);
static inline void GetObjectPtrLabel(const void * ptr1,GLsizei bufSize1,GLsizei * length1,GLchar * label1)
{
	static PFNGLGETOBJECTPTRLABELPROC_HPP fn=reinterpret_cast<PFNGLGETOBJECTPTRLABELPROC_HPP>(_impl::_get_proc_address("glGetObjectPtrLabel","GL_KHR_debug"));
	 fn(ptr1,bufSize1,length1,label1);
}
typedef void (*PFNGLGETOBJECTPTRLABELKHRPROC_HPP)(const void *,GLsizei,GLsizei *,GLchar *);
static inline void GetObjectPtrLabelKHR(const void * ptr1,GLsizei bufSize1,GLsizei * length1,GLchar * label1)
{
	static PFNGLGETOBJECTPTRLABELKHRPROC_HPP fn=reinterpret_cast<PFNGLGETOBJECTPTRLABELKHRPROC_HPP>(_impl::_get_proc_address("glGetObjectPtrLabelKHR","GL_KHR_debug"));
	 fn(ptr1,bufSize1,length1,label1);
}
typedef void (*PFNGLGETPOINTERVPROC_HPP)(GLenum,void **);
static inline void GetPointerv(GLenum pname1,void ** params1)
{
	static PFNGLGETPOINTERVPROC_HPP fn=reinterpret_cast<PFNGLGETPOINTERVPROC_HPP>(_impl::_get_proc_address("glGetPointerv","GL_KHR_debug"));
	 fn(pname1,params1);
}
typedef void (*PFNGLGETPOINTERVKHRPROC_HPP)(GLenum,void **);
static inline void GetPointervKHR(GLenum pname1,void ** params1)
{
	static PFNGLGETPOINTERVKHRPROC_HPP fn=reinterpret_cast<PFNGLGETPOINTERVKHRPROC_HPP>(_impl::_get_proc_address("glGetPointervKHR","GL_KHR_debug"));
	 fn(pname1,params1);
}
typedef void (*PFNGLOBJECTLABELPROC_HPP)(GLenum,GLuint,GLsizei,const GLchar *);
static inline void ObjectLabel(GLenum identifier1,GLuint name1,GLsizei length1,const GLchar * label1)
{
	static PFNGLOBJECTLABELPROC_HPP fn=reinterpret_cast<PFNGLOBJECTLABELPROC_HPP>(_impl::_get_proc_address("glObjectLabel","GL_KHR_debug"));
	 fn(identifier1,name1,length1,label1);
}
typedef void (*PFNGLOBJECTLABELKHRPROC_HPP)(GLenum,GLuint,GLsizei,const GLchar *);
static inline void ObjectLabelKHR(GLenum identifier1,GLuint name1,GLsizei length1,const GLchar * label1)
{
	static PFNGLOBJECTLABELKHRPROC_HPP fn=reinterpret_cast<PFNGLOBJECTLABELKHRPROC_HPP>(_impl::_get_proc_address("glObjectLabelKHR","GL_KHR_debug"));
	 fn(identifier1,name1,length1,label1);
}
typedef void (*PFNGLOBJECTPTRLABELPROC_HPP)(const void *,GLsizei,const GLchar *);
static inline void ObjectPtrLabel(const void * ptr1,GLsizei length1,const GLchar * label1)
{
	static PFNGLOBJECTPTRLABELPROC_HPP fn=reinterpret_cast<PFNGLOBJECTPTRLABELPROC_HPP>(_impl::_get_proc_address("glObjectPtrLabel","GL_KHR_debug"));
	 fn(ptr1,length1,label1);
}
typedef void (*PFNGLOBJECTPTRLABELKHRPROC_HPP)(const void *,GLsizei,const GLchar *);
static inline void ObjectPtrLabelKHR(const void * ptr1,GLsizei length1,const GLchar * label1)
{
	static PFNGLOBJECTPTRLABELKHRPROC_HPP fn=reinterpret_cast<PFNGLOBJECTPTRLABELKHRPROC_HPP>(_impl::_get_proc_address("glObjectPtrLabelKHR","GL_KHR_debug"));
	 fn(ptr1,length1,label1);
}
typedef void (*PFNGLPOPDEBUGGROUPPROC_HPP)();
static inline void PopDebugGroup()
{
	static PFNGLPOPDEBUGGROUPPROC_HPP fn=reinterpret_cast<PFNGLPOPDEBUGGROUPPROC_HPP>(_impl::_get_proc_address("glPopDebugGroup","GL_KHR_debug"));
	 fn();
}
typedef void (*PFNGLPOPDEBUGGROUPKHRPROC_HPP)();
static inline void PopDebugGroupKHR()
{
	static PFNGLPOPDEBUGGROUPKHRPROC_HPP fn=reinterpret_cast<PFNGLPOPDEBUGGROUPKHRPROC_HPP>(_impl::_get_proc_address("glPopDebugGroupKHR","GL_KHR_debug"));
	 fn();
}
typedef void (*PFNGLPUSHDEBUGGROUPPROC_HPP)(GLenum,GLuint,GLsizei,const GLchar *);
static inline void PushDebugGroup(GLenum source1,GLuint id1,GLsizei length1,const GLchar * message1)
{
	static PFNGLPUSHDEBUGGROUPPROC_HPP fn=reinterpret_cast<PFNGLPUSHDEBUGGROUPPROC_HPP>(_impl::_get_proc_address("glPushDebugGroup","GL_KHR_debug"));
	 fn(source1,id1,length1,message1);
}
typedef void (*PFNGLPUSHDEBUGGROUPKHRPROC_HPP)(GLenum,GLuint,GLsizei,const GLchar *);
static inline void PushDebugGroupKHR(GLenum source1,GLuint id1,GLsizei length1,const GLchar * message1)
{
	static PFNGLPUSHDEBUGGROUPKHRPROC_HPP fn=reinterpret_cast<PFNGLPUSHDEBUGGROUPKHRPROC_HPP>(_impl::_get_proc_address("glPushDebugGroupKHR","GL_KHR_debug"));
	 fn(source1,id1,length1,message1);
}}
#endif

#ifndef GL_KHR_robust_buffer_access_behavior
#define GL_KHR_robust_buffer_access_behavior
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_KHR_robustness
#define GL_KHR_robustness
#ifndef GL_NO_ERROR
#define GL_NO_ERROR 0
#endif //GL_NO_ERROR
#ifndef GL_CONTEXT_LOST
#define GL_CONTEXT_LOST 0x0507
#endif //GL_CONTEXT_LOST
#ifndef GL_CONTEXT_LOST_KHR
#define GL_CONTEXT_LOST_KHR 0x0507
#endif //GL_CONTEXT_LOST_KHR
#ifndef GL_LOSE_CONTEXT_ON_RESET_KHR
#define GL_LOSE_CONTEXT_ON_RESET_KHR 0x8252
#endif //GL_LOSE_CONTEXT_ON_RESET_KHR
#ifndef GL_LOSE_CONTEXT_ON_RESET
#define GL_LOSE_CONTEXT_ON_RESET 0x8252
#endif //GL_LOSE_CONTEXT_ON_RESET
#ifndef GL_GUILTY_CONTEXT_RESET
#define GL_GUILTY_CONTEXT_RESET 0x8253
#endif //GL_GUILTY_CONTEXT_RESET
#ifndef GL_GUILTY_CONTEXT_RESET_KHR
#define GL_GUILTY_CONTEXT_RESET_KHR 0x8253
#endif //GL_GUILTY_CONTEXT_RESET_KHR
#ifndef GL_INNOCENT_CONTEXT_RESET_KHR
#define GL_INNOCENT_CONTEXT_RESET_KHR 0x8254
#endif //GL_INNOCENT_CONTEXT_RESET_KHR
#ifndef GL_INNOCENT_CONTEXT_RESET
#define GL_INNOCENT_CONTEXT_RESET 0x8254
#endif //GL_INNOCENT_CONTEXT_RESET
#ifndef GL_UNKNOWN_CONTEXT_RESET
#define GL_UNKNOWN_CONTEXT_RESET 0x8255
#endif //GL_UNKNOWN_CONTEXT_RESET
#ifndef GL_UNKNOWN_CONTEXT_RESET_KHR
#define GL_UNKNOWN_CONTEXT_RESET_KHR 0x8255
#endif //GL_UNKNOWN_CONTEXT_RESET_KHR
#ifndef GL_RESET_NOTIFICATION_STRATEGY
#define GL_RESET_NOTIFICATION_STRATEGY 0x8256
#endif //GL_RESET_NOTIFICATION_STRATEGY
#ifndef GL_RESET_NOTIFICATION_STRATEGY_KHR
#define GL_RESET_NOTIFICATION_STRATEGY_KHR 0x8256
#endif //GL_RESET_NOTIFICATION_STRATEGY_KHR
#ifndef GL_NO_RESET_NOTIFICATION_KHR
#define GL_NO_RESET_NOTIFICATION_KHR 0x8261
#endif //GL_NO_RESET_NOTIFICATION_KHR
#ifndef GL_NO_RESET_NOTIFICATION
#define GL_NO_RESET_NOTIFICATION 0x8261
#endif //GL_NO_RESET_NOTIFICATION
#ifndef GL_CONTEXT_ROBUST_ACCESS_KHR
#define GL_CONTEXT_ROBUST_ACCESS_KHR 0x90F3
#endif //GL_CONTEXT_ROBUST_ACCESS_KHR
#ifndef GL_CONTEXT_ROBUST_ACCESS
#define GL_CONTEXT_ROBUST_ACCESS 0x90F3
#endif //GL_CONTEXT_ROBUST_ACCESS
extern "C" {
}
namespace gl{

typedef GLenum (*PFNGLGETGRAPHICSRESETSTATUSPROC_HPP)();
static inline GLenum GetGraphicsResetStatus()
{
	static PFNGLGETGRAPHICSRESETSTATUSPROC_HPP fn=reinterpret_cast<PFNGLGETGRAPHICSRESETSTATUSPROC_HPP>(_impl::_get_proc_address("glGetGraphicsResetStatus","GL_KHR_robustness"));
	return fn();
}
typedef GLenum (*PFNGLGETGRAPHICSRESETSTATUSKHRPROC_HPP)();
static inline GLenum GetGraphicsResetStatusKHR()
{
	static PFNGLGETGRAPHICSRESETSTATUSKHRPROC_HPP fn=reinterpret_cast<PFNGLGETGRAPHICSRESETSTATUSKHRPROC_HPP>(_impl::_get_proc_address("glGetGraphicsResetStatusKHR","GL_KHR_robustness"));
	return fn();
}
typedef void (*PFNGLGETNUNIFORMFVPROC_HPP)(GLuint,GLint,GLsizei,GLfloat *);
static inline void GetnUniformfv(GLuint program1,GLint location1,GLsizei bufSize1,GLfloat * params1)
{
	static PFNGLGETNUNIFORMFVPROC_HPP fn=reinterpret_cast<PFNGLGETNUNIFORMFVPROC_HPP>(_impl::_get_proc_address("glGetnUniformfv","GL_KHR_robustness"));
	 fn(program1,location1,bufSize1,params1);
}
typedef void (*PFNGLGETNUNIFORMFVKHRPROC_HPP)(GLuint,GLint,GLsizei,GLfloat *);
static inline void GetnUniformfvKHR(GLuint program1,GLint location1,GLsizei bufSize1,GLfloat * params1)
{
	static PFNGLGETNUNIFORMFVKHRPROC_HPP fn=reinterpret_cast<PFNGLGETNUNIFORMFVKHRPROC_HPP>(_impl::_get_proc_address("glGetnUniformfvKHR","GL_KHR_robustness"));
	 fn(program1,location1,bufSize1,params1);
}
typedef void (*PFNGLGETNUNIFORMIVPROC_HPP)(GLuint,GLint,GLsizei,GLint *);
static inline void GetnUniformiv(GLuint program1,GLint location1,GLsizei bufSize1,GLint * params1)
{
	static PFNGLGETNUNIFORMIVPROC_HPP fn=reinterpret_cast<PFNGLGETNUNIFORMIVPROC_HPP>(_impl::_get_proc_address("glGetnUniformiv","GL_KHR_robustness"));
	 fn(program1,location1,bufSize1,params1);
}
typedef void (*PFNGLGETNUNIFORMIVKHRPROC_HPP)(GLuint,GLint,GLsizei,GLint *);
static inline void GetnUniformivKHR(GLuint program1,GLint location1,GLsizei bufSize1,GLint * params1)
{
	static PFNGLGETNUNIFORMIVKHRPROC_HPP fn=reinterpret_cast<PFNGLGETNUNIFORMIVKHRPROC_HPP>(_impl::_get_proc_address("glGetnUniformivKHR","GL_KHR_robustness"));
	 fn(program1,location1,bufSize1,params1);
}
typedef void (*PFNGLGETNUNIFORMUIVPROC_HPP)(GLuint,GLint,GLsizei,GLuint *);
static inline void GetnUniformuiv(GLuint program1,GLint location1,GLsizei bufSize1,GLuint * params1)
{
	static PFNGLGETNUNIFORMUIVPROC_HPP fn=reinterpret_cast<PFNGLGETNUNIFORMUIVPROC_HPP>(_impl::_get_proc_address("glGetnUniformuiv","GL_KHR_robustness"));
	 fn(program1,location1,bufSize1,params1);
}
typedef void (*PFNGLGETNUNIFORMUIVKHRPROC_HPP)(GLuint,GLint,GLsizei,GLuint *);
static inline void GetnUniformuivKHR(GLuint program1,GLint location1,GLsizei bufSize1,GLuint * params1)
{
	static PFNGLGETNUNIFORMUIVKHRPROC_HPP fn=reinterpret_cast<PFNGLGETNUNIFORMUIVKHRPROC_HPP>(_impl::_get_proc_address("glGetnUniformuivKHR","GL_KHR_robustness"));
	 fn(program1,location1,bufSize1,params1);
}
typedef void (*PFNGLREADNPIXELSPROC_HPP)(GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,GLsizei,void *);
static inline void ReadnPixels(GLint x1,GLint y1,GLsizei width1,GLsizei height1,GLenum format1,GLenum type1,GLsizei bufSize1,void * data1)
{
	static PFNGLREADNPIXELSPROC_HPP fn=reinterpret_cast<PFNGLREADNPIXELSPROC_HPP>(_impl::_get_proc_address("glReadnPixels","GL_KHR_robustness"));
	 fn(x1,y1,width1,height1,format1,type1,bufSize1,data1);
}
typedef void (*PFNGLREADNPIXELSKHRPROC_HPP)(GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,GLsizei,void *);
static inline void ReadnPixelsKHR(GLint x1,GLint y1,GLsizei width1,GLsizei height1,GLenum format1,GLenum type1,GLsizei bufSize1,void * data1)
{
	static PFNGLREADNPIXELSKHRPROC_HPP fn=reinterpret_cast<PFNGLREADNPIXELSKHRPROC_HPP>(_impl::_get_proc_address("glReadnPixelsKHR","GL_KHR_robustness"));
	 fn(x1,y1,width1,height1,format1,type1,bufSize1,data1);
}}
#endif

#ifndef GL_KHR_texture_compression_astc_hdr
#define GL_KHR_texture_compression_astc_hdr
#ifndef GL_COMPRESSED_RGBA_ASTC_4x4_KHR
#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0
#endif //GL_COMPRESSED_RGBA_ASTC_4x4_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_5x4_KHR
#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1
#endif //GL_COMPRESSED_RGBA_ASTC_5x4_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_5x5_KHR
#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2
#endif //GL_COMPRESSED_RGBA_ASTC_5x5_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_6x5_KHR
#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3
#endif //GL_COMPRESSED_RGBA_ASTC_6x5_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_6x6_KHR
#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4
#endif //GL_COMPRESSED_RGBA_ASTC_6x6_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_8x5_KHR
#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5
#endif //GL_COMPRESSED_RGBA_ASTC_8x5_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_8x6_KHR
#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6
#endif //GL_COMPRESSED_RGBA_ASTC_8x6_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_8x8_KHR
#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7
#endif //GL_COMPRESSED_RGBA_ASTC_8x8_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_10x5_KHR
#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8
#endif //GL_COMPRESSED_RGBA_ASTC_10x5_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_10x6_KHR
#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9
#endif //GL_COMPRESSED_RGBA_ASTC_10x6_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_10x8_KHR
#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA
#endif //GL_COMPRESSED_RGBA_ASTC_10x8_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_10x10_KHR
#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB
#endif //GL_COMPRESSED_RGBA_ASTC_10x10_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_12x10_KHR
#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC
#endif //GL_COMPRESSED_RGBA_ASTC_12x10_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_12x12_KHR
#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD
#endif //GL_COMPRESSED_RGBA_ASTC_12x12_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_KHR_texture_compression_astc_ldr
#define GL_KHR_texture_compression_astc_ldr
#ifndef GL_COMPRESSED_RGBA_ASTC_4x4_KHR
#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0
#endif //GL_COMPRESSED_RGBA_ASTC_4x4_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_5x4_KHR
#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1
#endif //GL_COMPRESSED_RGBA_ASTC_5x4_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_5x5_KHR
#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2
#endif //GL_COMPRESSED_RGBA_ASTC_5x5_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_6x5_KHR
#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3
#endif //GL_COMPRESSED_RGBA_ASTC_6x5_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_6x6_KHR
#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4
#endif //GL_COMPRESSED_RGBA_ASTC_6x6_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_8x5_KHR
#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5
#endif //GL_COMPRESSED_RGBA_ASTC_8x5_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_8x6_KHR
#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6
#endif //GL_COMPRESSED_RGBA_ASTC_8x6_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_8x8_KHR
#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7
#endif //GL_COMPRESSED_RGBA_ASTC_8x8_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_10x5_KHR
#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8
#endif //GL_COMPRESSED_RGBA_ASTC_10x5_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_10x6_KHR
#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9
#endif //GL_COMPRESSED_RGBA_ASTC_10x6_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_10x8_KHR
#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA
#endif //GL_COMPRESSED_RGBA_ASTC_10x8_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_10x10_KHR
#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB
#endif //GL_COMPRESSED_RGBA_ASTC_10x10_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_12x10_KHR
#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC
#endif //GL_COMPRESSED_RGBA_ASTC_12x10_KHR
#ifndef GL_COMPRESSED_RGBA_ASTC_12x12_KHR
#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD
#endif //GL_COMPRESSED_RGBA_ASTC_12x12_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
#ifndef GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD
#endif //GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_MESAX_texture_stack
#define GL_MESAX_texture_stack
#ifndef GL_TEXTURE_1D_STACK_MESAX
#define GL_TEXTURE_1D_STACK_MESAX 0x8759
#endif //GL_TEXTURE_1D_STACK_MESAX
#ifndef GL_TEXTURE_2D_STACK_MESAX
#define GL_TEXTURE_2D_STACK_MESAX 0x875A
#endif //GL_TEXTURE_2D_STACK_MESAX
#ifndef GL_PROXY_TEXTURE_1D_STACK_MESAX
#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B
#endif //GL_PROXY_TEXTURE_1D_STACK_MESAX
#ifndef GL_PROXY_TEXTURE_2D_STACK_MESAX
#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C
#endif //GL_PROXY_TEXTURE_2D_STACK_MESAX
#ifndef GL_TEXTURE_1D_STACK_BINDING_MESAX
#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D
#endif //GL_TEXTURE_1D_STACK_BINDING_MESAX
#ifndef GL_TEXTURE_2D_STACK_BINDING_MESAX
#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E
#endif //GL_TEXTURE_2D_STACK_BINDING_MESAX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_MESA_pack_invert
#define GL_MESA_pack_invert
#ifndef GL_PACK_INVERT_MESA
#define GL_PACK_INVERT_MESA 0x8758
#endif //GL_PACK_INVERT_MESA
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_MESA_resize_buffers
#define GL_MESA_resize_buffers
extern "C" {
}
namespace gl{

typedef void (*PFNGLRESIZEBUFFERSMESAPROC_HPP)();
static inline void ResizeBuffersMESA()
{
	static PFNGLRESIZEBUFFERSMESAPROC_HPP fn=reinterpret_cast<PFNGLRESIZEBUFFERSMESAPROC_HPP>(_impl::_get_proc_address("glResizeBuffersMESA","GL_MESA_resize_buffers"));
	 fn();
}}
#endif

#ifndef GL_MESA_window_pos
#define GL_MESA_window_pos
extern "C" {
}
namespace gl{

typedef void (*PFNGLWINDOWPOS2DMESAPROC_HPP)(GLdouble,GLdouble);
static inline void WindowPos2dMESA(GLdouble x1,GLdouble y1)
{
	static PFNGLWINDOWPOS2DMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS2DMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos2dMESA","GL_MESA_window_pos"));
	 fn(x1,y1);
}
typedef void (*PFNGLWINDOWPOS2DVMESAPROC_HPP)(const GLdouble *);
static inline void WindowPos2dvMESA(const GLdouble * v1)
{
	static PFNGLWINDOWPOS2DVMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS2DVMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos2dvMESA","GL_MESA_window_pos"));
	 fn(v1);
}
typedef void (*PFNGLWINDOWPOS2FMESAPROC_HPP)(GLfloat,GLfloat);
static inline void WindowPos2fMESA(GLfloat x1,GLfloat y1)
{
	static PFNGLWINDOWPOS2FMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS2FMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos2fMESA","GL_MESA_window_pos"));
	 fn(x1,y1);
}
typedef void (*PFNGLWINDOWPOS2FVMESAPROC_HPP)(const GLfloat *);
static inline void WindowPos2fvMESA(const GLfloat * v1)
{
	static PFNGLWINDOWPOS2FVMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS2FVMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos2fvMESA","GL_MESA_window_pos"));
	 fn(v1);
}
typedef void (*PFNGLWINDOWPOS2IMESAPROC_HPP)(GLint,GLint);
static inline void WindowPos2iMESA(GLint x1,GLint y1)
{
	static PFNGLWINDOWPOS2IMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS2IMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos2iMESA","GL_MESA_window_pos"));
	 fn(x1,y1);
}
typedef void (*PFNGLWINDOWPOS2IVMESAPROC_HPP)(const GLint *);
static inline void WindowPos2ivMESA(const GLint * v1)
{
	static PFNGLWINDOWPOS2IVMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS2IVMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos2ivMESA","GL_MESA_window_pos"));
	 fn(v1);
}
typedef void (*PFNGLWINDOWPOS2SMESAPROC_HPP)(GLshort,GLshort);
static inline void WindowPos2sMESA(GLshort x1,GLshort y1)
{
	static PFNGLWINDOWPOS2SMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS2SMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos2sMESA","GL_MESA_window_pos"));
	 fn(x1,y1);
}
typedef void (*PFNGLWINDOWPOS2SVMESAPROC_HPP)(const GLshort *);
static inline void WindowPos2svMESA(const GLshort * v1)
{
	static PFNGLWINDOWPOS2SVMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS2SVMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos2svMESA","GL_MESA_window_pos"));
	 fn(v1);
}
typedef void (*PFNGLWINDOWPOS3DMESAPROC_HPP)(GLdouble,GLdouble,GLdouble);
static inline void WindowPos3dMESA(GLdouble x1,GLdouble y1,GLdouble z1)
{
	static PFNGLWINDOWPOS3DMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS3DMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos3dMESA","GL_MESA_window_pos"));
	 fn(x1,y1,z1);
}
typedef void (*PFNGLWINDOWPOS3DVMESAPROC_HPP)(const GLdouble *);
static inline void WindowPos3dvMESA(const GLdouble * v1)
{
	static PFNGLWINDOWPOS3DVMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS3DVMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos3dvMESA","GL_MESA_window_pos"));
	 fn(v1);
}
typedef void (*PFNGLWINDOWPOS3FMESAPROC_HPP)(GLfloat,GLfloat,GLfloat);
static inline void WindowPos3fMESA(GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLWINDOWPOS3FMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS3FMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos3fMESA","GL_MESA_window_pos"));
	 fn(x1,y1,z1);
}
typedef void (*PFNGLWINDOWPOS3FVMESAPROC_HPP)(const GLfloat *);
static inline void WindowPos3fvMESA(const GLfloat * v1)
{
	static PFNGLWINDOWPOS3FVMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS3FVMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos3fvMESA","GL_MESA_window_pos"));
	 fn(v1);
}
typedef void (*PFNGLWINDOWPOS3IMESAPROC_HPP)(GLint,GLint,GLint);
static inline void WindowPos3iMESA(GLint x1,GLint y1,GLint z1)
{
	static PFNGLWINDOWPOS3IMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS3IMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos3iMESA","GL_MESA_window_pos"));
	 fn(x1,y1,z1);
}
typedef void (*PFNGLWINDOWPOS3IVMESAPROC_HPP)(const GLint *);
static inline void WindowPos3ivMESA(const GLint * v1)
{
	static PFNGLWINDOWPOS3IVMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS3IVMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos3ivMESA","GL_MESA_window_pos"));
	 fn(v1);
}
typedef void (*PFNGLWINDOWPOS3SMESAPROC_HPP)(GLshort,GLshort,GLshort);
static inline void WindowPos3sMESA(GLshort x1,GLshort y1,GLshort z1)
{
	static PFNGLWINDOWPOS3SMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS3SMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos3sMESA","GL_MESA_window_pos"));
	 fn(x1,y1,z1);
}
typedef void (*PFNGLWINDOWPOS3SVMESAPROC_HPP)(const GLshort *);
static inline void WindowPos3svMESA(const GLshort * v1)
{
	static PFNGLWINDOWPOS3SVMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS3SVMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos3svMESA","GL_MESA_window_pos"));
	 fn(v1);
}
typedef void (*PFNGLWINDOWPOS4DMESAPROC_HPP)(GLdouble,GLdouble,GLdouble,GLdouble);
static inline void WindowPos4dMESA(GLdouble x1,GLdouble y1,GLdouble z1,GLdouble w1)
{
	static PFNGLWINDOWPOS4DMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS4DMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos4dMESA","GL_MESA_window_pos"));
	 fn(x1,y1,z1,w1);
}
typedef void (*PFNGLWINDOWPOS4DVMESAPROC_HPP)(const GLdouble *);
static inline void WindowPos4dvMESA(const GLdouble * v1)
{
	static PFNGLWINDOWPOS4DVMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS4DVMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos4dvMESA","GL_MESA_window_pos"));
	 fn(v1);
}
typedef void (*PFNGLWINDOWPOS4FMESAPROC_HPP)(GLfloat,GLfloat,GLfloat,GLfloat);
static inline void WindowPos4fMESA(GLfloat x1,GLfloat y1,GLfloat z1,GLfloat w1)
{
	static PFNGLWINDOWPOS4FMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS4FMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos4fMESA","GL_MESA_window_pos"));
	 fn(x1,y1,z1,w1);
}
typedef void (*PFNGLWINDOWPOS4FVMESAPROC_HPP)(const GLfloat *);
static inline void WindowPos4fvMESA(const GLfloat * v1)
{
	static PFNGLWINDOWPOS4FVMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS4FVMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos4fvMESA","GL_MESA_window_pos"));
	 fn(v1);
}
typedef void (*PFNGLWINDOWPOS4IMESAPROC_HPP)(GLint,GLint,GLint,GLint);
static inline void WindowPos4iMESA(GLint x1,GLint y1,GLint z1,GLint w1)
{
	static PFNGLWINDOWPOS4IMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS4IMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos4iMESA","GL_MESA_window_pos"));
	 fn(x1,y1,z1,w1);
}
typedef void (*PFNGLWINDOWPOS4IVMESAPROC_HPP)(const GLint *);
static inline void WindowPos4ivMESA(const GLint * v1)
{
	static PFNGLWINDOWPOS4IVMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS4IVMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos4ivMESA","GL_MESA_window_pos"));
	 fn(v1);
}
typedef void (*PFNGLWINDOWPOS4SMESAPROC_HPP)(GLshort,GLshort,GLshort,GLshort);
static inline void WindowPos4sMESA(GLshort x1,GLshort y1,GLshort z1,GLshort w1)
{
	static PFNGLWINDOWPOS4SMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS4SMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos4sMESA","GL_MESA_window_pos"));
	 fn(x1,y1,z1,w1);
}
typedef void (*PFNGLWINDOWPOS4SVMESAPROC_HPP)(const GLshort *);
static inline void WindowPos4svMESA(const GLshort * v1)
{
	static PFNGLWINDOWPOS4SVMESAPROC_HPP fn=reinterpret_cast<PFNGLWINDOWPOS4SVMESAPROC_HPP>(_impl::_get_proc_address("glWindowPos4svMESA","GL_MESA_window_pos"));
	 fn(v1);
}}
#endif

#ifndef GL_MESA_ycbcr_texture
#define GL_MESA_ycbcr_texture
#ifndef GL_UNSIGNED_SHORT_8_8_MESA
#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA
#endif //GL_UNSIGNED_SHORT_8_8_MESA
#ifndef GL_UNSIGNED_SHORT_8_8_REV_MESA
#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB
#endif //GL_UNSIGNED_SHORT_8_8_REV_MESA
#ifndef GL_YCBCR_MESA
#define GL_YCBCR_MESA 0x8757
#endif //GL_YCBCR_MESA
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NVX_conditional_render
#define GL_NVX_conditional_render
extern "C" {
}
namespace gl{

typedef void (*PFNGLBEGINCONDITIONALRENDERNVXPROC_HPP)(GLuint);
static inline void BeginConditionalRenderNVX(GLuint id1)
{
	static PFNGLBEGINCONDITIONALRENDERNVXPROC_HPP fn=reinterpret_cast<PFNGLBEGINCONDITIONALRENDERNVXPROC_HPP>(_impl::_get_proc_address("glBeginConditionalRenderNVX","GL_NVX_conditional_render"));
	 fn(id1);
}
typedef void (*PFNGLENDCONDITIONALRENDERNVXPROC_HPP)();
static inline void EndConditionalRenderNVX()
{
	static PFNGLENDCONDITIONALRENDERNVXPROC_HPP fn=reinterpret_cast<PFNGLENDCONDITIONALRENDERNVXPROC_HPP>(_impl::_get_proc_address("glEndConditionalRenderNVX","GL_NVX_conditional_render"));
	 fn();
}}
#endif

#ifndef GL_NVX_gpu_memory_info
#define GL_NVX_gpu_memory_info
#ifndef GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX
#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047
#endif //GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX
#ifndef GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX
#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048
#endif //GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX
#ifndef GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX
#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049
#endif //GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX
#ifndef GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX
#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A
#endif //GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX
#ifndef GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX
#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B
#endif //GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_bindless_multi_draw_indirect
#define GL_NV_bindless_multi_draw_indirect
extern "C" {
}
namespace gl{

typedef void (*PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC_HPP)(GLenum,const void *,GLsizei,GLsizei,GLint);
static inline void MultiDrawArraysIndirectBindlessNV(GLenum mode1,const void * indirect1,GLsizei drawCount1,GLsizei stride1,GLint vertexBufferCount1)
{
	static PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC_HPP fn=reinterpret_cast<PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC_HPP>(_impl::_get_proc_address("glMultiDrawArraysIndirectBindlessNV","GL_NV_bindless_multi_draw_indirect"));
	 fn(mode1,indirect1,drawCount1,stride1,vertexBufferCount1);
}
typedef void (*PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC_HPP)(GLenum,GLenum,const void *,GLsizei,GLsizei,GLint);
static inline void MultiDrawElementsIndirectBindlessNV(GLenum mode1,GLenum type1,const void * indirect1,GLsizei drawCount1,GLsizei stride1,GLint vertexBufferCount1)
{
	static PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC_HPP fn=reinterpret_cast<PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC_HPP>(_impl::_get_proc_address("glMultiDrawElementsIndirectBindlessNV","GL_NV_bindless_multi_draw_indirect"));
	 fn(mode1,type1,indirect1,drawCount1,stride1,vertexBufferCount1);
}}
#endif

#ifndef GL_NV_bindless_multi_draw_indirect_count
#define GL_NV_bindless_multi_draw_indirect_count
extern "C" {
}
namespace gl{

typedef void (*PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC_HPP)(GLenum,const void *,GLsizei,GLsizei,GLsizei,GLint);
static inline void MultiDrawArraysIndirectBindlessCountNV(GLenum mode1,const void * indirect1,GLsizei drawCount1,GLsizei maxDrawCount1,GLsizei stride1,GLint vertexBufferCount1)
{
	static PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC_HPP fn=reinterpret_cast<PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC_HPP>(_impl::_get_proc_address("glMultiDrawArraysIndirectBindlessCountNV","GL_NV_bindless_multi_draw_indirect_count"));
	 fn(mode1,indirect1,drawCount1,maxDrawCount1,stride1,vertexBufferCount1);
}
typedef void (*PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC_HPP)(GLenum,GLenum,const void *,GLsizei,GLsizei,GLsizei,GLint);
static inline void MultiDrawElementsIndirectBindlessCountNV(GLenum mode1,GLenum type1,const void * indirect1,GLsizei drawCount1,GLsizei maxDrawCount1,GLsizei stride1,GLint vertexBufferCount1)
{
	static PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC_HPP fn=reinterpret_cast<PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC_HPP>(_impl::_get_proc_address("glMultiDrawElementsIndirectBindlessCountNV","GL_NV_bindless_multi_draw_indirect_count"));
	 fn(mode1,type1,indirect1,drawCount1,maxDrawCount1,stride1,vertexBufferCount1);
}}
#endif

#ifndef GL_NV_bindless_texture
#define GL_NV_bindless_texture
extern "C" {
}
namespace gl{

typedef GLuint64 (*PFNGLGETIMAGEHANDLENVPROC_HPP)(GLuint,GLint,GLboolean,GLint,GLenum);
static inline GLuint64 GetImageHandleNV(GLuint texture1,GLint level1,GLboolean layered1,GLint layer1,GLenum format1)
{
	static PFNGLGETIMAGEHANDLENVPROC_HPP fn=reinterpret_cast<PFNGLGETIMAGEHANDLENVPROC_HPP>(_impl::_get_proc_address("glGetImageHandleNV","GL_NV_bindless_texture"));
	return fn(texture1,level1,layered1,layer1,format1);
}
typedef GLuint64 (*PFNGLGETTEXTUREHANDLENVPROC_HPP)(GLuint);
static inline GLuint64 GetTextureHandleNV(GLuint texture1)
{
	static PFNGLGETTEXTUREHANDLENVPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTUREHANDLENVPROC_HPP>(_impl::_get_proc_address("glGetTextureHandleNV","GL_NV_bindless_texture"));
	return fn(texture1);
}
typedef GLuint64 (*PFNGLGETTEXTURESAMPLERHANDLENVPROC_HPP)(GLuint,GLuint);
static inline GLuint64 GetTextureSamplerHandleNV(GLuint texture1,GLuint sampler1)
{
	static PFNGLGETTEXTURESAMPLERHANDLENVPROC_HPP fn=reinterpret_cast<PFNGLGETTEXTURESAMPLERHANDLENVPROC_HPP>(_impl::_get_proc_address("glGetTextureSamplerHandleNV","GL_NV_bindless_texture"));
	return fn(texture1,sampler1);
}
typedef GLboolean (*PFNGLISIMAGEHANDLERESIDENTNVPROC_HPP)(GLuint64);
static inline GLboolean IsImageHandleResidentNV(GLuint64 handle1)
{
	static PFNGLISIMAGEHANDLERESIDENTNVPROC_HPP fn=reinterpret_cast<PFNGLISIMAGEHANDLERESIDENTNVPROC_HPP>(_impl::_get_proc_address("glIsImageHandleResidentNV","GL_NV_bindless_texture"));
	return fn(handle1);
}
typedef GLboolean (*PFNGLISTEXTUREHANDLERESIDENTNVPROC_HPP)(GLuint64);
static inline GLboolean IsTextureHandleResidentNV(GLuint64 handle1)
{
	static PFNGLISTEXTUREHANDLERESIDENTNVPROC_HPP fn=reinterpret_cast<PFNGLISTEXTUREHANDLERESIDENTNVPROC_HPP>(_impl::_get_proc_address("glIsTextureHandleResidentNV","GL_NV_bindless_texture"));
	return fn(handle1);
}
typedef void (*PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC_HPP)(GLuint64);
static inline void MakeImageHandleNonResidentNV(GLuint64 handle1)
{
	static PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC_HPP fn=reinterpret_cast<PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC_HPP>(_impl::_get_proc_address("glMakeImageHandleNonResidentNV","GL_NV_bindless_texture"));
	 fn(handle1);
}
typedef void (*PFNGLMAKEIMAGEHANDLERESIDENTNVPROC_HPP)(GLuint64,GLenum);
static inline void MakeImageHandleResidentNV(GLuint64 handle1,GLenum access1)
{
	static PFNGLMAKEIMAGEHANDLERESIDENTNVPROC_HPP fn=reinterpret_cast<PFNGLMAKEIMAGEHANDLERESIDENTNVPROC_HPP>(_impl::_get_proc_address("glMakeImageHandleResidentNV","GL_NV_bindless_texture"));
	 fn(handle1,access1);
}
typedef void (*PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC_HPP)(GLuint64);
static inline void MakeTextureHandleNonResidentNV(GLuint64 handle1)
{
	static PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC_HPP fn=reinterpret_cast<PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC_HPP>(_impl::_get_proc_address("glMakeTextureHandleNonResidentNV","GL_NV_bindless_texture"));
	 fn(handle1);
}
typedef void (*PFNGLMAKETEXTUREHANDLERESIDENTNVPROC_HPP)(GLuint64);
static inline void MakeTextureHandleResidentNV(GLuint64 handle1)
{
	static PFNGLMAKETEXTUREHANDLERESIDENTNVPROC_HPP fn=reinterpret_cast<PFNGLMAKETEXTUREHANDLERESIDENTNVPROC_HPP>(_impl::_get_proc_address("glMakeTextureHandleResidentNV","GL_NV_bindless_texture"));
	 fn(handle1);
}
typedef void (*PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC_HPP)(GLuint,GLint,GLuint64);
static inline void ProgramUniformHandleui64NV(GLuint program1,GLint location1,GLuint64 value1)
{
	static PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC_HPP>(_impl::_get_proc_address("glProgramUniformHandleui64NV","GL_NV_bindless_texture"));
	 fn(program1,location1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC_HPP)(GLuint,GLint,GLsizei,const GLuint64 *);
static inline void ProgramUniformHandleui64vNV(GLuint program1,GLint location1,GLsizei count1,const GLuint64 * values1)
{
	static PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC_HPP>(_impl::_get_proc_address("glProgramUniformHandleui64vNV","GL_NV_bindless_texture"));
	 fn(program1,location1,count1,values1);
}
typedef void (*PFNGLUNIFORMHANDLEUI64NVPROC_HPP)(GLint,GLuint64);
static inline void UniformHandleui64NV(GLint location1,GLuint64 value1)
{
	static PFNGLUNIFORMHANDLEUI64NVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMHANDLEUI64NVPROC_HPP>(_impl::_get_proc_address("glUniformHandleui64NV","GL_NV_bindless_texture"));
	 fn(location1,value1);
}
typedef void (*PFNGLUNIFORMHANDLEUI64VNVPROC_HPP)(GLint,GLsizei,const GLuint64 *);
static inline void UniformHandleui64vNV(GLint location1,GLsizei count1,const GLuint64 * value1)
{
	static PFNGLUNIFORMHANDLEUI64VNVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMHANDLEUI64VNVPROC_HPP>(_impl::_get_proc_address("glUniformHandleui64vNV","GL_NV_bindless_texture"));
	 fn(location1,count1,value1);
}}
#endif

#ifndef GL_NV_blend_equation_advanced
#define GL_NV_blend_equation_advanced
#ifndef GL_ZERO
#define GL_ZERO 0
#endif //GL_ZERO
#ifndef GL_XOR_NV
#define GL_XOR_NV 0x1506
#endif //GL_XOR_NV
#ifndef GL_INVERT
#define GL_INVERT 0x150A
#endif //GL_INVERT
#ifndef GL_RED_NV
#define GL_RED_NV 0x1903
#endif //GL_RED_NV
#ifndef GL_GREEN_NV
#define GL_GREEN_NV 0x1904
#endif //GL_GREEN_NV
#ifndef GL_BLUE_NV
#define GL_BLUE_NV 0x1905
#endif //GL_BLUE_NV
#ifndef GL_BLEND_PREMULTIPLIED_SRC_NV
#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280
#endif //GL_BLEND_PREMULTIPLIED_SRC_NV
#ifndef GL_BLEND_OVERLAP_NV
#define GL_BLEND_OVERLAP_NV 0x9281
#endif //GL_BLEND_OVERLAP_NV
#ifndef GL_UNCORRELATED_NV
#define GL_UNCORRELATED_NV 0x9282
#endif //GL_UNCORRELATED_NV
#ifndef GL_DISJOINT_NV
#define GL_DISJOINT_NV 0x9283
#endif //GL_DISJOINT_NV
#ifndef GL_CONJOINT_NV
#define GL_CONJOINT_NV 0x9284
#endif //GL_CONJOINT_NV
#ifndef GL_SRC_NV
#define GL_SRC_NV 0x9286
#endif //GL_SRC_NV
#ifndef GL_DST_NV
#define GL_DST_NV 0x9287
#endif //GL_DST_NV
#ifndef GL_SRC_OVER_NV
#define GL_SRC_OVER_NV 0x9288
#endif //GL_SRC_OVER_NV
#ifndef GL_DST_OVER_NV
#define GL_DST_OVER_NV 0x9289
#endif //GL_DST_OVER_NV
#ifndef GL_SRC_IN_NV
#define GL_SRC_IN_NV 0x928A
#endif //GL_SRC_IN_NV
#ifndef GL_DST_IN_NV
#define GL_DST_IN_NV 0x928B
#endif //GL_DST_IN_NV
#ifndef GL_SRC_OUT_NV
#define GL_SRC_OUT_NV 0x928C
#endif //GL_SRC_OUT_NV
#ifndef GL_DST_OUT_NV
#define GL_DST_OUT_NV 0x928D
#endif //GL_DST_OUT_NV
#ifndef GL_SRC_ATOP_NV
#define GL_SRC_ATOP_NV 0x928E
#endif //GL_SRC_ATOP_NV
#ifndef GL_DST_ATOP_NV
#define GL_DST_ATOP_NV 0x928F
#endif //GL_DST_ATOP_NV
#ifndef GL_PLUS_NV
#define GL_PLUS_NV 0x9291
#endif //GL_PLUS_NV
#ifndef GL_PLUS_DARKER_NV
#define GL_PLUS_DARKER_NV 0x9292
#endif //GL_PLUS_DARKER_NV
#ifndef GL_MULTIPLY_NV
#define GL_MULTIPLY_NV 0x9294
#endif //GL_MULTIPLY_NV
#ifndef GL_SCREEN_NV
#define GL_SCREEN_NV 0x9295
#endif //GL_SCREEN_NV
#ifndef GL_OVERLAY_NV
#define GL_OVERLAY_NV 0x9296
#endif //GL_OVERLAY_NV
#ifndef GL_DARKEN_NV
#define GL_DARKEN_NV 0x9297
#endif //GL_DARKEN_NV
#ifndef GL_LIGHTEN_NV
#define GL_LIGHTEN_NV 0x9298
#endif //GL_LIGHTEN_NV
#ifndef GL_COLORDODGE_NV
#define GL_COLORDODGE_NV 0x9299
#endif //GL_COLORDODGE_NV
#ifndef GL_COLORBURN_NV
#define GL_COLORBURN_NV 0x929A
#endif //GL_COLORBURN_NV
#ifndef GL_HARDLIGHT_NV
#define GL_HARDLIGHT_NV 0x929B
#endif //GL_HARDLIGHT_NV
#ifndef GL_SOFTLIGHT_NV
#define GL_SOFTLIGHT_NV 0x929C
#endif //GL_SOFTLIGHT_NV
#ifndef GL_DIFFERENCE_NV
#define GL_DIFFERENCE_NV 0x929E
#endif //GL_DIFFERENCE_NV
#ifndef GL_MINUS_NV
#define GL_MINUS_NV 0x929F
#endif //GL_MINUS_NV
#ifndef GL_EXCLUSION_NV
#define GL_EXCLUSION_NV 0x92A0
#endif //GL_EXCLUSION_NV
#ifndef GL_CONTRAST_NV
#define GL_CONTRAST_NV 0x92A1
#endif //GL_CONTRAST_NV
#ifndef GL_INVERT_RGB_NV
#define GL_INVERT_RGB_NV 0x92A3
#endif //GL_INVERT_RGB_NV
#ifndef GL_LINEARDODGE_NV
#define GL_LINEARDODGE_NV 0x92A4
#endif //GL_LINEARDODGE_NV
#ifndef GL_LINEARBURN_NV
#define GL_LINEARBURN_NV 0x92A5
#endif //GL_LINEARBURN_NV
#ifndef GL_VIVIDLIGHT_NV
#define GL_VIVIDLIGHT_NV 0x92A6
#endif //GL_VIVIDLIGHT_NV
#ifndef GL_LINEARLIGHT_NV
#define GL_LINEARLIGHT_NV 0x92A7
#endif //GL_LINEARLIGHT_NV
#ifndef GL_PINLIGHT_NV
#define GL_PINLIGHT_NV 0x92A8
#endif //GL_PINLIGHT_NV
#ifndef GL_HARDMIX_NV
#define GL_HARDMIX_NV 0x92A9
#endif //GL_HARDMIX_NV
#ifndef GL_HSL_HUE_NV
#define GL_HSL_HUE_NV 0x92AD
#endif //GL_HSL_HUE_NV
#ifndef GL_HSL_SATURATION_NV
#define GL_HSL_SATURATION_NV 0x92AE
#endif //GL_HSL_SATURATION_NV
#ifndef GL_HSL_COLOR_NV
#define GL_HSL_COLOR_NV 0x92AF
#endif //GL_HSL_COLOR_NV
#ifndef GL_HSL_LUMINOSITY_NV
#define GL_HSL_LUMINOSITY_NV 0x92B0
#endif //GL_HSL_LUMINOSITY_NV
#ifndef GL_PLUS_CLAMPED_NV
#define GL_PLUS_CLAMPED_NV 0x92B1
#endif //GL_PLUS_CLAMPED_NV
#ifndef GL_PLUS_CLAMPED_ALPHA_NV
#define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2
#endif //GL_PLUS_CLAMPED_ALPHA_NV
#ifndef GL_MINUS_CLAMPED_NV
#define GL_MINUS_CLAMPED_NV 0x92B3
#endif //GL_MINUS_CLAMPED_NV
#ifndef GL_INVERT_OVG_NV
#define GL_INVERT_OVG_NV 0x92B4
#endif //GL_INVERT_OVG_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLBLENDBARRIERNVPROC_HPP)();
static inline void BlendBarrierNV()
{
	static PFNGLBLENDBARRIERNVPROC_HPP fn=reinterpret_cast<PFNGLBLENDBARRIERNVPROC_HPP>(_impl::_get_proc_address("glBlendBarrierNV","GL_NV_blend_equation_advanced"));
	 fn();
}
typedef void (*PFNGLBLENDPARAMETERINVPROC_HPP)(GLenum,GLint);
static inline void BlendParameteriNV(GLenum pname1,GLint value1)
{
	static PFNGLBLENDPARAMETERINVPROC_HPP fn=reinterpret_cast<PFNGLBLENDPARAMETERINVPROC_HPP>(_impl::_get_proc_address("glBlendParameteriNV","GL_NV_blend_equation_advanced"));
	 fn(pname1,value1);
}}
#endif

#ifndef GL_NV_blend_equation_advanced_coherent
#define GL_NV_blend_equation_advanced_coherent
#ifndef GL_BLEND_ADVANCED_COHERENT_NV
#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285
#endif //GL_BLEND_ADVANCED_COHERENT_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_blend_square
#define GL_NV_blend_square
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_compute_program5
#define GL_NV_compute_program5
#ifndef GL_COMPUTE_PROGRAM_NV
#define GL_COMPUTE_PROGRAM_NV 0x90FB
#endif //GL_COMPUTE_PROGRAM_NV
#ifndef GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV
#define GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV 0x90FC
#endif //GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_conditional_render
#define GL_NV_conditional_render
#ifndef GL_QUERY_WAIT_NV
#define GL_QUERY_WAIT_NV 0x8E13
#endif //GL_QUERY_WAIT_NV
#ifndef GL_QUERY_NO_WAIT_NV
#define GL_QUERY_NO_WAIT_NV 0x8E14
#endif //GL_QUERY_NO_WAIT_NV
#ifndef GL_QUERY_BY_REGION_WAIT_NV
#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15
#endif //GL_QUERY_BY_REGION_WAIT_NV
#ifndef GL_QUERY_BY_REGION_NO_WAIT_NV
#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16
#endif //GL_QUERY_BY_REGION_NO_WAIT_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLBEGINCONDITIONALRENDERNVPROC_HPP)(GLuint,GLenum);
static inline void BeginConditionalRenderNV(GLuint id1,GLenum mode1)
{
	static PFNGLBEGINCONDITIONALRENDERNVPROC_HPP fn=reinterpret_cast<PFNGLBEGINCONDITIONALRENDERNVPROC_HPP>(_impl::_get_proc_address("glBeginConditionalRenderNV","GL_NV_conditional_render"));
	 fn(id1,mode1);
}
typedef void (*PFNGLENDCONDITIONALRENDERNVPROC_HPP)();
static inline void EndConditionalRenderNV()
{
	static PFNGLENDCONDITIONALRENDERNVPROC_HPP fn=reinterpret_cast<PFNGLENDCONDITIONALRENDERNVPROC_HPP>(_impl::_get_proc_address("glEndConditionalRenderNV","GL_NV_conditional_render"));
	 fn();
}}
#endif

#ifndef GL_NV_copy_depth_to_color
#define GL_NV_copy_depth_to_color
#ifndef GL_DEPTH_STENCIL_TO_RGBA_NV
#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E
#endif //GL_DEPTH_STENCIL_TO_RGBA_NV
#ifndef GL_DEPTH_STENCIL_TO_BGRA_NV
#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F
#endif //GL_DEPTH_STENCIL_TO_BGRA_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_copy_image
#define GL_NV_copy_image
extern "C" {
}
namespace gl{

typedef void (*PFNGLCOPYIMAGESUBDATANVPROC_HPP)(GLuint,GLenum,GLint,GLint,GLint,GLint,GLuint,GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei);
static inline void CopyImageSubDataNV(GLuint srcName1,GLenum srcTarget1,GLint srcLevel1,GLint srcX1,GLint srcY1,GLint srcZ1,GLuint dstName1,GLenum dstTarget1,GLint dstLevel1,GLint dstX1,GLint dstY1,GLint dstZ1,GLsizei width1,GLsizei height1,GLsizei depth1)
{
	static PFNGLCOPYIMAGESUBDATANVPROC_HPP fn=reinterpret_cast<PFNGLCOPYIMAGESUBDATANVPROC_HPP>(_impl::_get_proc_address("glCopyImageSubDataNV","GL_NV_copy_image"));
	 fn(srcName1,srcTarget1,srcLevel1,srcX1,srcY1,srcZ1,dstName1,dstTarget1,dstLevel1,dstX1,dstY1,dstZ1,width1,height1,depth1);
}}
#endif

#ifndef GL_NV_deep_texture3D
#define GL_NV_deep_texture3D
#ifndef GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV
#define GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90D0
#endif //GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV
#ifndef GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV
#define GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV 0x90D1
#endif //GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_depth_buffer_float
#define GL_NV_depth_buffer_float
#ifndef GL_DEPTH_COMPONENT32F_NV
#define GL_DEPTH_COMPONENT32F_NV 0x8DAB
#endif //GL_DEPTH_COMPONENT32F_NV
#ifndef GL_DEPTH32F_STENCIL8_NV
#define GL_DEPTH32F_STENCIL8_NV 0x8DAC
#endif //GL_DEPTH32F_STENCIL8_NV
#ifndef GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV
#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD
#endif //GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV
#ifndef GL_DEPTH_BUFFER_FLOAT_MODE_NV
#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF
#endif //GL_DEPTH_BUFFER_FLOAT_MODE_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLCLEARDEPTHDNVPROC_HPP)(GLdouble);
static inline void ClearDepthdNV(GLdouble depth1)
{
	static PFNGLCLEARDEPTHDNVPROC_HPP fn=reinterpret_cast<PFNGLCLEARDEPTHDNVPROC_HPP>(_impl::_get_proc_address("glClearDepthdNV","GL_NV_depth_buffer_float"));
	 fn(depth1);
}
typedef void (*PFNGLDEPTHBOUNDSDNVPROC_HPP)(GLdouble,GLdouble);
static inline void DepthBoundsdNV(GLdouble zmin1,GLdouble zmax1)
{
	static PFNGLDEPTHBOUNDSDNVPROC_HPP fn=reinterpret_cast<PFNGLDEPTHBOUNDSDNVPROC_HPP>(_impl::_get_proc_address("glDepthBoundsdNV","GL_NV_depth_buffer_float"));
	 fn(zmin1,zmax1);
}
typedef void (*PFNGLDEPTHRANGEDNVPROC_HPP)(GLdouble,GLdouble);
static inline void DepthRangedNV(GLdouble zNear1,GLdouble zFar1)
{
	static PFNGLDEPTHRANGEDNVPROC_HPP fn=reinterpret_cast<PFNGLDEPTHRANGEDNVPROC_HPP>(_impl::_get_proc_address("glDepthRangedNV","GL_NV_depth_buffer_float"));
	 fn(zNear1,zFar1);
}}
#endif

#ifndef GL_NV_depth_clamp
#define GL_NV_depth_clamp
#ifndef GL_DEPTH_CLAMP_NV
#define GL_DEPTH_CLAMP_NV 0x864F
#endif //GL_DEPTH_CLAMP_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_draw_texture
#define GL_NV_draw_texture
extern "C" {
}
namespace gl{

typedef void (*PFNGLDRAWTEXTURENVPROC_HPP)(GLuint,GLuint,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void DrawTextureNV(GLuint texture1,GLuint sampler1,GLfloat x01,GLfloat y01,GLfloat x11,GLfloat y11,GLfloat z1,GLfloat s01,GLfloat t01,GLfloat s11,GLfloat t11)
{
	static PFNGLDRAWTEXTURENVPROC_HPP fn=reinterpret_cast<PFNGLDRAWTEXTURENVPROC_HPP>(_impl::_get_proc_address("glDrawTextureNV","GL_NV_draw_texture"));
	 fn(texture1,sampler1,x01,y01,x11,y11,z1,s01,t01,s11,t11);
}}
#endif

#ifndef GL_NV_evaluators
#define GL_NV_evaluators
#ifndef GL_EVAL_2D_NV
#define GL_EVAL_2D_NV 0x86C0
#endif //GL_EVAL_2D_NV
#ifndef GL_EVAL_TRIANGULAR_2D_NV
#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1
#endif //GL_EVAL_TRIANGULAR_2D_NV
#ifndef GL_MAP_TESSELLATION_NV
#define GL_MAP_TESSELLATION_NV 0x86C2
#endif //GL_MAP_TESSELLATION_NV
#ifndef GL_MAP_ATTRIB_U_ORDER_NV
#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3
#endif //GL_MAP_ATTRIB_U_ORDER_NV
#ifndef GL_MAP_ATTRIB_V_ORDER_NV
#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4
#endif //GL_MAP_ATTRIB_V_ORDER_NV
#ifndef GL_EVAL_FRACTIONAL_TESSELLATION_NV
#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5
#endif //GL_EVAL_FRACTIONAL_TESSELLATION_NV
#ifndef GL_EVAL_VERTEX_ATTRIB0_NV
#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6
#endif //GL_EVAL_VERTEX_ATTRIB0_NV
#ifndef GL_EVAL_VERTEX_ATTRIB1_NV
#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7
#endif //GL_EVAL_VERTEX_ATTRIB1_NV
#ifndef GL_EVAL_VERTEX_ATTRIB2_NV
#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8
#endif //GL_EVAL_VERTEX_ATTRIB2_NV
#ifndef GL_EVAL_VERTEX_ATTRIB3_NV
#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9
#endif //GL_EVAL_VERTEX_ATTRIB3_NV
#ifndef GL_EVAL_VERTEX_ATTRIB4_NV
#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA
#endif //GL_EVAL_VERTEX_ATTRIB4_NV
#ifndef GL_EVAL_VERTEX_ATTRIB5_NV
#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB
#endif //GL_EVAL_VERTEX_ATTRIB5_NV
#ifndef GL_EVAL_VERTEX_ATTRIB6_NV
#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC
#endif //GL_EVAL_VERTEX_ATTRIB6_NV
#ifndef GL_EVAL_VERTEX_ATTRIB7_NV
#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD
#endif //GL_EVAL_VERTEX_ATTRIB7_NV
#ifndef GL_EVAL_VERTEX_ATTRIB8_NV
#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE
#endif //GL_EVAL_VERTEX_ATTRIB8_NV
#ifndef GL_EVAL_VERTEX_ATTRIB9_NV
#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF
#endif //GL_EVAL_VERTEX_ATTRIB9_NV
#ifndef GL_EVAL_VERTEX_ATTRIB10_NV
#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0
#endif //GL_EVAL_VERTEX_ATTRIB10_NV
#ifndef GL_EVAL_VERTEX_ATTRIB11_NV
#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1
#endif //GL_EVAL_VERTEX_ATTRIB11_NV
#ifndef GL_EVAL_VERTEX_ATTRIB12_NV
#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2
#endif //GL_EVAL_VERTEX_ATTRIB12_NV
#ifndef GL_EVAL_VERTEX_ATTRIB13_NV
#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3
#endif //GL_EVAL_VERTEX_ATTRIB13_NV
#ifndef GL_EVAL_VERTEX_ATTRIB14_NV
#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4
#endif //GL_EVAL_VERTEX_ATTRIB14_NV
#ifndef GL_EVAL_VERTEX_ATTRIB15_NV
#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5
#endif //GL_EVAL_VERTEX_ATTRIB15_NV
#ifndef GL_MAX_MAP_TESSELLATION_NV
#define GL_MAX_MAP_TESSELLATION_NV 0x86D6
#endif //GL_MAX_MAP_TESSELLATION_NV
#ifndef GL_MAX_RATIONAL_EVAL_ORDER_NV
#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7
#endif //GL_MAX_RATIONAL_EVAL_ORDER_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLEVALMAPSNVPROC_HPP)(GLenum,GLenum);
static inline void EvalMapsNV(GLenum target1,GLenum mode1)
{
	static PFNGLEVALMAPSNVPROC_HPP fn=reinterpret_cast<PFNGLEVALMAPSNVPROC_HPP>(_impl::_get_proc_address("glEvalMapsNV","GL_NV_evaluators"));
	 fn(target1,mode1);
}
typedef void (*PFNGLGETMAPATTRIBPARAMETERFVNVPROC_HPP)(GLenum,GLuint,GLenum,GLfloat *);
static inline void GetMapAttribParameterfvNV(GLenum target1,GLuint index1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETMAPATTRIBPARAMETERFVNVPROC_HPP fn=reinterpret_cast<PFNGLGETMAPATTRIBPARAMETERFVNVPROC_HPP>(_impl::_get_proc_address("glGetMapAttribParameterfvNV","GL_NV_evaluators"));
	 fn(target1,index1,pname1,params1);
}
typedef void (*PFNGLGETMAPATTRIBPARAMETERIVNVPROC_HPP)(GLenum,GLuint,GLenum,GLint *);
static inline void GetMapAttribParameterivNV(GLenum target1,GLuint index1,GLenum pname1,GLint * params1)
{
	static PFNGLGETMAPATTRIBPARAMETERIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETMAPATTRIBPARAMETERIVNVPROC_HPP>(_impl::_get_proc_address("glGetMapAttribParameterivNV","GL_NV_evaluators"));
	 fn(target1,index1,pname1,params1);
}
typedef void (*PFNGLGETMAPCONTROLPOINTSNVPROC_HPP)(GLenum,GLuint,GLenum,GLsizei,GLsizei,GLboolean,void *);
static inline void GetMapControlPointsNV(GLenum target1,GLuint index1,GLenum type1,GLsizei ustride1,GLsizei vstride1,GLboolean packed1,void * points1)
{
	static PFNGLGETMAPCONTROLPOINTSNVPROC_HPP fn=reinterpret_cast<PFNGLGETMAPCONTROLPOINTSNVPROC_HPP>(_impl::_get_proc_address("glGetMapControlPointsNV","GL_NV_evaluators"));
	 fn(target1,index1,type1,ustride1,vstride1,packed1,points1);
}
typedef void (*PFNGLGETMAPPARAMETERFVNVPROC_HPP)(GLenum,GLenum,GLfloat *);
static inline void GetMapParameterfvNV(GLenum target1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETMAPPARAMETERFVNVPROC_HPP fn=reinterpret_cast<PFNGLGETMAPPARAMETERFVNVPROC_HPP>(_impl::_get_proc_address("glGetMapParameterfvNV","GL_NV_evaluators"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETMAPPARAMETERIVNVPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetMapParameterivNV(GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETMAPPARAMETERIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETMAPPARAMETERIVNVPROC_HPP>(_impl::_get_proc_address("glGetMapParameterivNV","GL_NV_evaluators"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLMAPCONTROLPOINTSNVPROC_HPP)(GLenum,GLuint,GLenum,GLsizei,GLsizei,GLint,GLint,GLboolean,const void *);
static inline void MapControlPointsNV(GLenum target1,GLuint index1,GLenum type1,GLsizei ustride1,GLsizei vstride1,GLint uorder1,GLint vorder1,GLboolean packed1,const void * points1)
{
	static PFNGLMAPCONTROLPOINTSNVPROC_HPP fn=reinterpret_cast<PFNGLMAPCONTROLPOINTSNVPROC_HPP>(_impl::_get_proc_address("glMapControlPointsNV","GL_NV_evaluators"));
	 fn(target1,index1,type1,ustride1,vstride1,uorder1,vorder1,packed1,points1);
}
typedef void (*PFNGLMAPPARAMETERFVNVPROC_HPP)(GLenum,GLenum,const GLfloat *);
static inline void MapParameterfvNV(GLenum target1,GLenum pname1,const GLfloat * params1)
{
	static PFNGLMAPPARAMETERFVNVPROC_HPP fn=reinterpret_cast<PFNGLMAPPARAMETERFVNVPROC_HPP>(_impl::_get_proc_address("glMapParameterfvNV","GL_NV_evaluators"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLMAPPARAMETERIVNVPROC_HPP)(GLenum,GLenum,const GLint *);
static inline void MapParameterivNV(GLenum target1,GLenum pname1,const GLint * params1)
{
	static PFNGLMAPPARAMETERIVNVPROC_HPP fn=reinterpret_cast<PFNGLMAPPARAMETERIVNVPROC_HPP>(_impl::_get_proc_address("glMapParameterivNV","GL_NV_evaluators"));
	 fn(target1,pname1,params1);
}}
#endif

#ifndef GL_NV_explicit_multisample
#define GL_NV_explicit_multisample
#ifndef GL_SAMPLE_POSITION_NV
#define GL_SAMPLE_POSITION_NV 0x8E50
#endif //GL_SAMPLE_POSITION_NV
#ifndef GL_SAMPLE_MASK_NV
#define GL_SAMPLE_MASK_NV 0x8E51
#endif //GL_SAMPLE_MASK_NV
#ifndef GL_SAMPLE_MASK_VALUE_NV
#define GL_SAMPLE_MASK_VALUE_NV 0x8E52
#endif //GL_SAMPLE_MASK_VALUE_NV
#ifndef GL_TEXTURE_BINDING_RENDERBUFFER_NV
#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53
#endif //GL_TEXTURE_BINDING_RENDERBUFFER_NV
#ifndef GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV
#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54
#endif //GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV
#ifndef GL_TEXTURE_RENDERBUFFER_NV
#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55
#endif //GL_TEXTURE_RENDERBUFFER_NV
#ifndef GL_SAMPLER_RENDERBUFFER_NV
#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56
#endif //GL_SAMPLER_RENDERBUFFER_NV
#ifndef GL_INT_SAMPLER_RENDERBUFFER_NV
#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57
#endif //GL_INT_SAMPLER_RENDERBUFFER_NV
#ifndef GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV
#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58
#endif //GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV
#ifndef GL_MAX_SAMPLE_MASK_WORDS_NV
#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59
#endif //GL_MAX_SAMPLE_MASK_WORDS_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETMULTISAMPLEFVNVPROC_HPP)(GLenum,GLuint,GLfloat *);
static inline void GetMultisamplefvNV(GLenum pname1,GLuint index1,GLfloat * val1)
{
	static PFNGLGETMULTISAMPLEFVNVPROC_HPP fn=reinterpret_cast<PFNGLGETMULTISAMPLEFVNVPROC_HPP>(_impl::_get_proc_address("glGetMultisamplefvNV","GL_NV_explicit_multisample"));
	 fn(pname1,index1,val1);
}
typedef void (*PFNGLSAMPLEMASKINDEXEDNVPROC_HPP)(GLuint,GLbitfield);
static inline void SampleMaskIndexedNV(GLuint index1,GLbitfield mask1)
{
	static PFNGLSAMPLEMASKINDEXEDNVPROC_HPP fn=reinterpret_cast<PFNGLSAMPLEMASKINDEXEDNVPROC_HPP>(_impl::_get_proc_address("glSampleMaskIndexedNV","GL_NV_explicit_multisample"));
	 fn(index1,mask1);
}
typedef void (*PFNGLTEXRENDERBUFFERNVPROC_HPP)(GLenum,GLuint);
static inline void TexRenderbufferNV(GLenum target1,GLuint renderbuffer1)
{
	static PFNGLTEXRENDERBUFFERNVPROC_HPP fn=reinterpret_cast<PFNGLTEXRENDERBUFFERNVPROC_HPP>(_impl::_get_proc_address("glTexRenderbufferNV","GL_NV_explicit_multisample"));
	 fn(target1,renderbuffer1);
}}
#endif

#ifndef GL_NV_fence
#define GL_NV_fence
#ifndef GL_ALL_COMPLETED_NV
#define GL_ALL_COMPLETED_NV 0x84F2
#endif //GL_ALL_COMPLETED_NV
#ifndef GL_FENCE_STATUS_NV
#define GL_FENCE_STATUS_NV 0x84F3
#endif //GL_FENCE_STATUS_NV
#ifndef GL_FENCE_CONDITION_NV
#define GL_FENCE_CONDITION_NV 0x84F4
#endif //GL_FENCE_CONDITION_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLDELETEFENCESNVPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteFencesNV(GLsizei n1,const GLuint * fences1)
{
	static PFNGLDELETEFENCESNVPROC_HPP fn=reinterpret_cast<PFNGLDELETEFENCESNVPROC_HPP>(_impl::_get_proc_address("glDeleteFencesNV","GL_NV_fence"));
	 fn(n1,fences1);
}
typedef void (*PFNGLFINISHFENCENVPROC_HPP)(GLuint);
static inline void FinishFenceNV(GLuint fence1)
{
	static PFNGLFINISHFENCENVPROC_HPP fn=reinterpret_cast<PFNGLFINISHFENCENVPROC_HPP>(_impl::_get_proc_address("glFinishFenceNV","GL_NV_fence"));
	 fn(fence1);
}
typedef void (*PFNGLGENFENCESNVPROC_HPP)(GLsizei,GLuint *);
static inline void GenFencesNV(GLsizei n1,GLuint * fences1)
{
	static PFNGLGENFENCESNVPROC_HPP fn=reinterpret_cast<PFNGLGENFENCESNVPROC_HPP>(_impl::_get_proc_address("glGenFencesNV","GL_NV_fence"));
	 fn(n1,fences1);
}
typedef void (*PFNGLGETFENCEIVNVPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetFenceivNV(GLuint fence1,GLenum pname1,GLint * params1)
{
	static PFNGLGETFENCEIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETFENCEIVNVPROC_HPP>(_impl::_get_proc_address("glGetFenceivNV","GL_NV_fence"));
	 fn(fence1,pname1,params1);
}
typedef GLboolean (*PFNGLISFENCENVPROC_HPP)(GLuint);
static inline GLboolean IsFenceNV(GLuint fence1)
{
	static PFNGLISFENCENVPROC_HPP fn=reinterpret_cast<PFNGLISFENCENVPROC_HPP>(_impl::_get_proc_address("glIsFenceNV","GL_NV_fence"));
	return fn(fence1);
}
typedef void (*PFNGLSETFENCENVPROC_HPP)(GLuint,GLenum);
static inline void SetFenceNV(GLuint fence1,GLenum condition1)
{
	static PFNGLSETFENCENVPROC_HPP fn=reinterpret_cast<PFNGLSETFENCENVPROC_HPP>(_impl::_get_proc_address("glSetFenceNV","GL_NV_fence"));
	 fn(fence1,condition1);
}
typedef GLboolean (*PFNGLTESTFENCENVPROC_HPP)(GLuint);
static inline GLboolean TestFenceNV(GLuint fence1)
{
	static PFNGLTESTFENCENVPROC_HPP fn=reinterpret_cast<PFNGLTESTFENCENVPROC_HPP>(_impl::_get_proc_address("glTestFenceNV","GL_NV_fence"));
	return fn(fence1);
}}
#endif

#ifndef GL_NV_float_buffer
#define GL_NV_float_buffer
#ifndef GL_FLOAT_R_NV
#define GL_FLOAT_R_NV 0x8880
#endif //GL_FLOAT_R_NV
#ifndef GL_FLOAT_RG_NV
#define GL_FLOAT_RG_NV 0x8881
#endif //GL_FLOAT_RG_NV
#ifndef GL_FLOAT_RGB_NV
#define GL_FLOAT_RGB_NV 0x8882
#endif //GL_FLOAT_RGB_NV
#ifndef GL_FLOAT_RGBA_NV
#define GL_FLOAT_RGBA_NV 0x8883
#endif //GL_FLOAT_RGBA_NV
#ifndef GL_FLOAT_R16_NV
#define GL_FLOAT_R16_NV 0x8884
#endif //GL_FLOAT_R16_NV
#ifndef GL_FLOAT_R32_NV
#define GL_FLOAT_R32_NV 0x8885
#endif //GL_FLOAT_R32_NV
#ifndef GL_FLOAT_RG16_NV
#define GL_FLOAT_RG16_NV 0x8886
#endif //GL_FLOAT_RG16_NV
#ifndef GL_FLOAT_RG32_NV
#define GL_FLOAT_RG32_NV 0x8887
#endif //GL_FLOAT_RG32_NV
#ifndef GL_FLOAT_RGB16_NV
#define GL_FLOAT_RGB16_NV 0x8888
#endif //GL_FLOAT_RGB16_NV
#ifndef GL_FLOAT_RGB32_NV
#define GL_FLOAT_RGB32_NV 0x8889
#endif //GL_FLOAT_RGB32_NV
#ifndef GL_FLOAT_RGBA16_NV
#define GL_FLOAT_RGBA16_NV 0x888A
#endif //GL_FLOAT_RGBA16_NV
#ifndef GL_FLOAT_RGBA32_NV
#define GL_FLOAT_RGBA32_NV 0x888B
#endif //GL_FLOAT_RGBA32_NV
#ifndef GL_TEXTURE_FLOAT_COMPONENTS_NV
#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C
#endif //GL_TEXTURE_FLOAT_COMPONENTS_NV
#ifndef GL_FLOAT_CLEAR_COLOR_VALUE_NV
#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D
#endif //GL_FLOAT_CLEAR_COLOR_VALUE_NV
#ifndef GL_FLOAT_RGBA_MODE_NV
#define GL_FLOAT_RGBA_MODE_NV 0x888E
#endif //GL_FLOAT_RGBA_MODE_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_fog_distance
#define GL_NV_fog_distance
#ifndef GL_EYE_PLANE
#define GL_EYE_PLANE 0x2502
#endif //GL_EYE_PLANE
#ifndef GL_FOG_DISTANCE_MODE_NV
#define GL_FOG_DISTANCE_MODE_NV 0x855A
#endif //GL_FOG_DISTANCE_MODE_NV
#ifndef GL_EYE_RADIAL_NV
#define GL_EYE_RADIAL_NV 0x855B
#endif //GL_EYE_RADIAL_NV
#ifndef GL_EYE_PLANE_ABSOLUTE_NV
#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C
#endif //GL_EYE_PLANE_ABSOLUTE_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_fragment_program
#define GL_NV_fragment_program
#ifndef GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868
#endif //GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
#ifndef GL_FRAGMENT_PROGRAM_NV
#define GL_FRAGMENT_PROGRAM_NV 0x8870
#endif //GL_FRAGMENT_PROGRAM_NV
#ifndef GL_MAX_TEXTURE_COORDS_NV
#define GL_MAX_TEXTURE_COORDS_NV 0x8871
#endif //GL_MAX_TEXTURE_COORDS_NV
#ifndef GL_MAX_TEXTURE_IMAGE_UNITS_NV
#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872
#endif //GL_MAX_TEXTURE_IMAGE_UNITS_NV
#ifndef GL_FRAGMENT_PROGRAM_BINDING_NV
#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873
#endif //GL_FRAGMENT_PROGRAM_BINDING_NV
#ifndef GL_PROGRAM_ERROR_STRING_NV
#define GL_PROGRAM_ERROR_STRING_NV 0x8874
#endif //GL_PROGRAM_ERROR_STRING_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC_HPP)(GLuint,GLsizei,const GLubyte *,GLdouble *);
static inline void GetProgramNamedParameterdvNV(GLuint id1,GLsizei len1,const GLubyte * name1,GLdouble * params1)
{
	static PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC_HPP>(_impl::_get_proc_address("glGetProgramNamedParameterdvNV","GL_NV_fragment_program"));
	 fn(id1,len1,name1,params1);
}
typedef void (*PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC_HPP)(GLuint,GLsizei,const GLubyte *,GLfloat *);
static inline void GetProgramNamedParameterfvNV(GLuint id1,GLsizei len1,const GLubyte * name1,GLfloat * params1)
{
	static PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC_HPP>(_impl::_get_proc_address("glGetProgramNamedParameterfvNV","GL_NV_fragment_program"));
	 fn(id1,len1,name1,params1);
}
typedef void (*PFNGLPROGRAMNAMEDPARAMETER4DNVPROC_HPP)(GLuint,GLsizei,const GLubyte *,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void ProgramNamedParameter4dNV(GLuint id1,GLsizei len1,const GLubyte * name1,GLdouble x1,GLdouble y1,GLdouble z1,GLdouble w1)
{
	static PFNGLPROGRAMNAMEDPARAMETER4DNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMNAMEDPARAMETER4DNVPROC_HPP>(_impl::_get_proc_address("glProgramNamedParameter4dNV","GL_NV_fragment_program"));
	 fn(id1,len1,name1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC_HPP)(GLuint,GLsizei,const GLubyte *,const GLdouble *);
static inline void ProgramNamedParameter4dvNV(GLuint id1,GLsizei len1,const GLubyte * name1,const GLdouble * v1)
{
	static PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC_HPP>(_impl::_get_proc_address("glProgramNamedParameter4dvNV","GL_NV_fragment_program"));
	 fn(id1,len1,name1,v1);
}
typedef void (*PFNGLPROGRAMNAMEDPARAMETER4FNVPROC_HPP)(GLuint,GLsizei,const GLubyte *,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void ProgramNamedParameter4fNV(GLuint id1,GLsizei len1,const GLubyte * name1,GLfloat x1,GLfloat y1,GLfloat z1,GLfloat w1)
{
	static PFNGLPROGRAMNAMEDPARAMETER4FNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMNAMEDPARAMETER4FNVPROC_HPP>(_impl::_get_proc_address("glProgramNamedParameter4fNV","GL_NV_fragment_program"));
	 fn(id1,len1,name1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC_HPP)(GLuint,GLsizei,const GLubyte *,const GLfloat *);
static inline void ProgramNamedParameter4fvNV(GLuint id1,GLsizei len1,const GLubyte * name1,const GLfloat * v1)
{
	static PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC_HPP>(_impl::_get_proc_address("glProgramNamedParameter4fvNV","GL_NV_fragment_program"));
	 fn(id1,len1,name1,v1);
}}
#endif

#ifndef GL_NV_fragment_program2
#define GL_NV_fragment_program2
#ifndef GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV
#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4
#endif //GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV
#ifndef GL_MAX_PROGRAM_CALL_DEPTH_NV
#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5
#endif //GL_MAX_PROGRAM_CALL_DEPTH_NV
#ifndef GL_MAX_PROGRAM_IF_DEPTH_NV
#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6
#endif //GL_MAX_PROGRAM_IF_DEPTH_NV
#ifndef GL_MAX_PROGRAM_LOOP_DEPTH_NV
#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7
#endif //GL_MAX_PROGRAM_LOOP_DEPTH_NV
#ifndef GL_MAX_PROGRAM_LOOP_COUNT_NV
#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8
#endif //GL_MAX_PROGRAM_LOOP_COUNT_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_fragment_program4
#define GL_NV_fragment_program4
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_fragment_program_option
#define GL_NV_fragment_program_option
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_framebuffer_multisample_coverage
#define GL_NV_framebuffer_multisample_coverage
#ifndef GL_RENDERBUFFER_COVERAGE_SAMPLES_NV
#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB
#endif //GL_RENDERBUFFER_COVERAGE_SAMPLES_NV
#ifndef GL_RENDERBUFFER_COLOR_SAMPLES_NV
#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10
#endif //GL_RENDERBUFFER_COLOR_SAMPLES_NV
#ifndef GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV
#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11
#endif //GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV
#ifndef GL_MULTISAMPLE_COVERAGE_MODES_NV
#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12
#endif //GL_MULTISAMPLE_COVERAGE_MODES_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC_HPP)(GLenum,GLsizei,GLsizei,GLenum,GLsizei,GLsizei);
static inline void RenderbufferStorageMultisampleCoverageNV(GLenum target1,GLsizei coverageSamples1,GLsizei colorSamples1,GLenum internalformat1,GLsizei width1,GLsizei height1)
{
	static PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC_HPP fn=reinterpret_cast<PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC_HPP>(_impl::_get_proc_address("glRenderbufferStorageMultisampleCoverageNV","GL_NV_framebuffer_multisample_coverage"));
	 fn(target1,coverageSamples1,colorSamples1,internalformat1,width1,height1);
}}
#endif

#ifndef GL_NV_geometry_program4
#define GL_NV_geometry_program4
#ifndef GL_LINES_ADJACENCY_EXT
#define GL_LINES_ADJACENCY_EXT 0x000A
#endif //GL_LINES_ADJACENCY_EXT
#ifndef GL_LINE_STRIP_ADJACENCY_EXT
#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B
#endif //GL_LINE_STRIP_ADJACENCY_EXT
#ifndef GL_TRIANGLES_ADJACENCY_EXT
#define GL_TRIANGLES_ADJACENCY_EXT 0x000C
#endif //GL_TRIANGLES_ADJACENCY_EXT
#ifndef GL_TRIANGLE_STRIP_ADJACENCY_EXT
#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D
#endif //GL_TRIANGLE_STRIP_ADJACENCY_EXT
#ifndef GL_PROGRAM_POINT_SIZE_EXT
#define GL_PROGRAM_POINT_SIZE_EXT 0x8642
#endif //GL_PROGRAM_POINT_SIZE_EXT
#ifndef GL_GEOMETRY_PROGRAM_NV
#define GL_GEOMETRY_PROGRAM_NV 0x8C26
#endif //GL_GEOMETRY_PROGRAM_NV
#ifndef GL_MAX_PROGRAM_OUTPUT_VERTICES_NV
#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27
#endif //GL_MAX_PROGRAM_OUTPUT_VERTICES_NV
#ifndef GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV
#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28
#endif //GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV
#ifndef GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT
#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
#endif //GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT
#ifndef GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4
#endif //GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT
#ifndef GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT
#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
#endif //GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT
#ifndef GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
#endif //GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT
#ifndef GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT
#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9
#endif //GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT
#ifndef GL_GEOMETRY_VERTICES_OUT_EXT
#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA
#endif //GL_GEOMETRY_VERTICES_OUT_EXT
#ifndef GL_GEOMETRY_INPUT_TYPE_EXT
#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB
#endif //GL_GEOMETRY_INPUT_TYPE_EXT
#ifndef GL_GEOMETRY_OUTPUT_TYPE_EXT
#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC
#endif //GL_GEOMETRY_OUTPUT_TYPE_EXT
extern "C" {
}
namespace gl{

typedef void (*PFNGLFRAMEBUFFERTEXTUREEXTPROC_HPP)(GLenum,GLenum,GLuint,GLint);
static inline void FramebufferTextureEXT(GLenum target1,GLenum attachment1,GLuint texture1,GLint level1)
{
	static PFNGLFRAMEBUFFERTEXTUREEXTPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERTEXTUREEXTPROC_HPP>(_impl::_get_proc_address("glFramebufferTextureEXT","GL_NV_geometry_program4"));
	 fn(target1,attachment1,texture1,level1);
}
typedef void (*PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC_HPP)(GLenum,GLenum,GLuint,GLint,GLenum);
static inline void FramebufferTextureFaceEXT(GLenum target1,GLenum attachment1,GLuint texture1,GLint level1,GLenum face1)
{
	static PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC_HPP>(_impl::_get_proc_address("glFramebufferTextureFaceEXT","GL_NV_geometry_program4"));
	 fn(target1,attachment1,texture1,level1,face1);
}
typedef void (*PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC_HPP)(GLenum,GLenum,GLuint,GLint,GLint);
static inline void FramebufferTextureLayerEXT(GLenum target1,GLenum attachment1,GLuint texture1,GLint level1,GLint layer1)
{
	static PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC_HPP fn=reinterpret_cast<PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC_HPP>(_impl::_get_proc_address("glFramebufferTextureLayerEXT","GL_NV_geometry_program4"));
	 fn(target1,attachment1,texture1,level1,layer1);
}
typedef void (*PFNGLPROGRAMVERTEXLIMITNVPROC_HPP)(GLenum,GLint);
static inline void ProgramVertexLimitNV(GLenum target1,GLint limit1)
{
	static PFNGLPROGRAMVERTEXLIMITNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMVERTEXLIMITNVPROC_HPP>(_impl::_get_proc_address("glProgramVertexLimitNV","GL_NV_geometry_program4"));
	 fn(target1,limit1);
}}
#endif

#ifndef GL_NV_geometry_shader4
#define GL_NV_geometry_shader4
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_gpu_program4
#define GL_NV_gpu_program4
#ifndef GL_MIN_PROGRAM_TEXEL_OFFSET_NV
#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904
#endif //GL_MIN_PROGRAM_TEXEL_OFFSET_NV
#ifndef GL_MAX_PROGRAM_TEXEL_OFFSET_NV
#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905
#endif //GL_MAX_PROGRAM_TEXEL_OFFSET_NV
#ifndef GL_PROGRAM_ATTRIB_COMPONENTS_NV
#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906
#endif //GL_PROGRAM_ATTRIB_COMPONENTS_NV
#ifndef GL_PROGRAM_RESULT_COMPONENTS_NV
#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907
#endif //GL_PROGRAM_RESULT_COMPONENTS_NV
#ifndef GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV
#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908
#endif //GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV
#ifndef GL_MAX_PROGRAM_RESULT_COMPONENTS_NV
#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909
#endif //GL_MAX_PROGRAM_RESULT_COMPONENTS_NV
#ifndef GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV
#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5
#endif //GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV
#ifndef GL_MAX_PROGRAM_GENERIC_RESULTS_NV
#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6
#endif //GL_MAX_PROGRAM_GENERIC_RESULTS_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETPROGRAMENVPARAMETERIIVNVPROC_HPP)(GLenum,GLuint,GLint *);
static inline void GetProgramEnvParameterIivNV(GLenum target1,GLuint index1,GLint * params1)
{
	static PFNGLGETPROGRAMENVPARAMETERIIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMENVPARAMETERIIVNVPROC_HPP>(_impl::_get_proc_address("glGetProgramEnvParameterIivNV","GL_NV_gpu_program4"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC_HPP)(GLenum,GLuint,GLuint *);
static inline void GetProgramEnvParameterIuivNV(GLenum target1,GLuint index1,GLuint * params1)
{
	static PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC_HPP>(_impl::_get_proc_address("glGetProgramEnvParameterIuivNV","GL_NV_gpu_program4"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC_HPP)(GLenum,GLuint,GLint *);
static inline void GetProgramLocalParameterIivNV(GLenum target1,GLuint index1,GLint * params1)
{
	static PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC_HPP>(_impl::_get_proc_address("glGetProgramLocalParameterIivNV","GL_NV_gpu_program4"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC_HPP)(GLenum,GLuint,GLuint *);
static inline void GetProgramLocalParameterIuivNV(GLenum target1,GLuint index1,GLuint * params1)
{
	static PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC_HPP>(_impl::_get_proc_address("glGetProgramLocalParameterIuivNV","GL_NV_gpu_program4"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLPROGRAMENVPARAMETERI4INVPROC_HPP)(GLenum,GLuint,GLint,GLint,GLint,GLint);
static inline void ProgramEnvParameterI4iNV(GLenum target1,GLuint index1,GLint x1,GLint y1,GLint z1,GLint w1)
{
	static PFNGLPROGRAMENVPARAMETERI4INVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMENVPARAMETERI4INVPROC_HPP>(_impl::_get_proc_address("glProgramEnvParameterI4iNV","GL_NV_gpu_program4"));
	 fn(target1,index1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMENVPARAMETERI4IVNVPROC_HPP)(GLenum,GLuint,const GLint *);
static inline void ProgramEnvParameterI4ivNV(GLenum target1,GLuint index1,const GLint * params1)
{
	static PFNGLPROGRAMENVPARAMETERI4IVNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMENVPARAMETERI4IVNVPROC_HPP>(_impl::_get_proc_address("glProgramEnvParameterI4ivNV","GL_NV_gpu_program4"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLPROGRAMENVPARAMETERI4UINVPROC_HPP)(GLenum,GLuint,GLuint,GLuint,GLuint,GLuint);
static inline void ProgramEnvParameterI4uiNV(GLenum target1,GLuint index1,GLuint x1,GLuint y1,GLuint z1,GLuint w1)
{
	static PFNGLPROGRAMENVPARAMETERI4UINVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMENVPARAMETERI4UINVPROC_HPP>(_impl::_get_proc_address("glProgramEnvParameterI4uiNV","GL_NV_gpu_program4"));
	 fn(target1,index1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMENVPARAMETERI4UIVNVPROC_HPP)(GLenum,GLuint,const GLuint *);
static inline void ProgramEnvParameterI4uivNV(GLenum target1,GLuint index1,const GLuint * params1)
{
	static PFNGLPROGRAMENVPARAMETERI4UIVNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMENVPARAMETERI4UIVNVPROC_HPP>(_impl::_get_proc_address("glProgramEnvParameterI4uivNV","GL_NV_gpu_program4"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLPROGRAMENVPARAMETERSI4IVNVPROC_HPP)(GLenum,GLuint,GLsizei,const GLint *);
static inline void ProgramEnvParametersI4ivNV(GLenum target1,GLuint index1,GLsizei count1,const GLint * params1)
{
	static PFNGLPROGRAMENVPARAMETERSI4IVNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMENVPARAMETERSI4IVNVPROC_HPP>(_impl::_get_proc_address("glProgramEnvParametersI4ivNV","GL_NV_gpu_program4"));
	 fn(target1,index1,count1,params1);
}
typedef void (*PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC_HPP)(GLenum,GLuint,GLsizei,const GLuint *);
static inline void ProgramEnvParametersI4uivNV(GLenum target1,GLuint index1,GLsizei count1,const GLuint * params1)
{
	static PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC_HPP>(_impl::_get_proc_address("glProgramEnvParametersI4uivNV","GL_NV_gpu_program4"));
	 fn(target1,index1,count1,params1);
}
typedef void (*PFNGLPROGRAMLOCALPARAMETERI4INVPROC_HPP)(GLenum,GLuint,GLint,GLint,GLint,GLint);
static inline void ProgramLocalParameterI4iNV(GLenum target1,GLuint index1,GLint x1,GLint y1,GLint z1,GLint w1)
{
	static PFNGLPROGRAMLOCALPARAMETERI4INVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETERI4INVPROC_HPP>(_impl::_get_proc_address("glProgramLocalParameterI4iNV","GL_NV_gpu_program4"));
	 fn(target1,index1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC_HPP)(GLenum,GLuint,const GLint *);
static inline void ProgramLocalParameterI4ivNV(GLenum target1,GLuint index1,const GLint * params1)
{
	static PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC_HPP>(_impl::_get_proc_address("glProgramLocalParameterI4ivNV","GL_NV_gpu_program4"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLPROGRAMLOCALPARAMETERI4UINVPROC_HPP)(GLenum,GLuint,GLuint,GLuint,GLuint,GLuint);
static inline void ProgramLocalParameterI4uiNV(GLenum target1,GLuint index1,GLuint x1,GLuint y1,GLuint z1,GLuint w1)
{
	static PFNGLPROGRAMLOCALPARAMETERI4UINVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETERI4UINVPROC_HPP>(_impl::_get_proc_address("glProgramLocalParameterI4uiNV","GL_NV_gpu_program4"));
	 fn(target1,index1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC_HPP)(GLenum,GLuint,const GLuint *);
static inline void ProgramLocalParameterI4uivNV(GLenum target1,GLuint index1,const GLuint * params1)
{
	static PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC_HPP>(_impl::_get_proc_address("glProgramLocalParameterI4uivNV","GL_NV_gpu_program4"));
	 fn(target1,index1,params1);
}
typedef void (*PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC_HPP)(GLenum,GLuint,GLsizei,const GLint *);
static inline void ProgramLocalParametersI4ivNV(GLenum target1,GLuint index1,GLsizei count1,const GLint * params1)
{
	static PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC_HPP>(_impl::_get_proc_address("glProgramLocalParametersI4ivNV","GL_NV_gpu_program4"));
	 fn(target1,index1,count1,params1);
}
typedef void (*PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC_HPP)(GLenum,GLuint,GLsizei,const GLuint *);
static inline void ProgramLocalParametersI4uivNV(GLenum target1,GLuint index1,GLsizei count1,const GLuint * params1)
{
	static PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC_HPP>(_impl::_get_proc_address("glProgramLocalParametersI4uivNV","GL_NV_gpu_program4"));
	 fn(target1,index1,count1,params1);
}}
#endif

#ifndef GL_NV_gpu_program5
#define GL_NV_gpu_program5
#ifndef GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV
#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A
#endif //GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV
#ifndef GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV
#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B
#endif //GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV
#ifndef GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV
#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C
#endif //GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV
#ifndef GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV
#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D
#endif //GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV
#ifndef GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV
#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E
#endif //GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV
#ifndef GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV
#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F
#endif //GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV
#ifndef GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV
#define GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV 0x8F44
#endif //GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV
#ifndef GL_MAX_PROGRAM_SUBROUTINE_NUM_NV
#define GL_MAX_PROGRAM_SUBROUTINE_NUM_NV 0x8F45
#endif //GL_MAX_PROGRAM_SUBROUTINE_NUM_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC_HPP)(GLenum,GLuint,GLuint *);
static inline void GetProgramSubroutineParameteruivNV(GLenum target1,GLuint index1,GLuint * param1)
{
	static PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC_HPP>(_impl::_get_proc_address("glGetProgramSubroutineParameteruivNV","GL_NV_gpu_program5"));
	 fn(target1,index1,param1);
}
typedef void (*PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC_HPP)(GLenum,GLsizei,const GLuint *);
static inline void ProgramSubroutineParametersuivNV(GLenum target1,GLsizei count1,const GLuint * params1)
{
	static PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC_HPP>(_impl::_get_proc_address("glProgramSubroutineParametersuivNV","GL_NV_gpu_program5"));
	 fn(target1,count1,params1);
}}
#endif

#ifndef GL_NV_gpu_program5_mem_extended
#define GL_NV_gpu_program5_mem_extended
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_gpu_shader5
#define GL_NV_gpu_shader5
#ifndef GL_PATCHES
#define GL_PATCHES 0x000E
#endif //GL_PATCHES
#ifndef GL_INT64_NV
#define GL_INT64_NV 0x140E
#endif //GL_INT64_NV
#ifndef GL_UNSIGNED_INT64_NV
#define GL_UNSIGNED_INT64_NV 0x140F
#endif //GL_UNSIGNED_INT64_NV
#ifndef GL_INT8_NV
#define GL_INT8_NV 0x8FE0
#endif //GL_INT8_NV
#ifndef GL_INT8_VEC2_NV
#define GL_INT8_VEC2_NV 0x8FE1
#endif //GL_INT8_VEC2_NV
#ifndef GL_INT8_VEC3_NV
#define GL_INT8_VEC3_NV 0x8FE2
#endif //GL_INT8_VEC3_NV
#ifndef GL_INT8_VEC4_NV
#define GL_INT8_VEC4_NV 0x8FE3
#endif //GL_INT8_VEC4_NV
#ifndef GL_INT16_NV
#define GL_INT16_NV 0x8FE4
#endif //GL_INT16_NV
#ifndef GL_INT16_VEC2_NV
#define GL_INT16_VEC2_NV 0x8FE5
#endif //GL_INT16_VEC2_NV
#ifndef GL_INT16_VEC3_NV
#define GL_INT16_VEC3_NV 0x8FE6
#endif //GL_INT16_VEC3_NV
#ifndef GL_INT16_VEC4_NV
#define GL_INT16_VEC4_NV 0x8FE7
#endif //GL_INT16_VEC4_NV
#ifndef GL_INT64_VEC2_NV
#define GL_INT64_VEC2_NV 0x8FE9
#endif //GL_INT64_VEC2_NV
#ifndef GL_INT64_VEC3_NV
#define GL_INT64_VEC3_NV 0x8FEA
#endif //GL_INT64_VEC3_NV
#ifndef GL_INT64_VEC4_NV
#define GL_INT64_VEC4_NV 0x8FEB
#endif //GL_INT64_VEC4_NV
#ifndef GL_UNSIGNED_INT8_NV
#define GL_UNSIGNED_INT8_NV 0x8FEC
#endif //GL_UNSIGNED_INT8_NV
#ifndef GL_UNSIGNED_INT8_VEC2_NV
#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED
#endif //GL_UNSIGNED_INT8_VEC2_NV
#ifndef GL_UNSIGNED_INT8_VEC3_NV
#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE
#endif //GL_UNSIGNED_INT8_VEC3_NV
#ifndef GL_UNSIGNED_INT8_VEC4_NV
#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF
#endif //GL_UNSIGNED_INT8_VEC4_NV
#ifndef GL_UNSIGNED_INT16_NV
#define GL_UNSIGNED_INT16_NV 0x8FF0
#endif //GL_UNSIGNED_INT16_NV
#ifndef GL_UNSIGNED_INT16_VEC2_NV
#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1
#endif //GL_UNSIGNED_INT16_VEC2_NV
#ifndef GL_UNSIGNED_INT16_VEC3_NV
#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2
#endif //GL_UNSIGNED_INT16_VEC3_NV
#ifndef GL_UNSIGNED_INT16_VEC4_NV
#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3
#endif //GL_UNSIGNED_INT16_VEC4_NV
#ifndef GL_UNSIGNED_INT64_VEC2_NV
#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5
#endif //GL_UNSIGNED_INT64_VEC2_NV
#ifndef GL_UNSIGNED_INT64_VEC3_NV
#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6
#endif //GL_UNSIGNED_INT64_VEC3_NV
#ifndef GL_UNSIGNED_INT64_VEC4_NV
#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7
#endif //GL_UNSIGNED_INT64_VEC4_NV
#ifndef GL_FLOAT16_NV
#define GL_FLOAT16_NV 0x8FF8
#endif //GL_FLOAT16_NV
#ifndef GL_FLOAT16_VEC2_NV
#define GL_FLOAT16_VEC2_NV 0x8FF9
#endif //GL_FLOAT16_VEC2_NV
#ifndef GL_FLOAT16_VEC3_NV
#define GL_FLOAT16_VEC3_NV 0x8FFA
#endif //GL_FLOAT16_VEC3_NV
#ifndef GL_FLOAT16_VEC4_NV
#define GL_FLOAT16_VEC4_NV 0x8FFB
#endif //GL_FLOAT16_VEC4_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETUNIFORMI64VNVPROC_HPP)(GLuint,GLint,GLint64EXT *);
static inline void GetUniformi64vNV(GLuint program1,GLint location1,GLint64EXT * params1)
{
	static PFNGLGETUNIFORMI64VNVPROC_HPP fn=reinterpret_cast<PFNGLGETUNIFORMI64VNVPROC_HPP>(_impl::_get_proc_address("glGetUniformi64vNV","GL_NV_gpu_shader5"));
	 fn(program1,location1,params1);
}
typedef void (*PFNGLPROGRAMUNIFORM1I64NVPROC_HPP)(GLuint,GLint,GLint64EXT);
static inline void ProgramUniform1i64NV(GLuint program1,GLint location1,GLint64EXT x1)
{
	static PFNGLPROGRAMUNIFORM1I64NVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1I64NVPROC_HPP>(_impl::_get_proc_address("glProgramUniform1i64NV","GL_NV_gpu_shader5"));
	 fn(program1,location1,x1);
}
typedef void (*PFNGLPROGRAMUNIFORM1I64VNVPROC_HPP)(GLuint,GLint,GLsizei,const GLint64EXT *);
static inline void ProgramUniform1i64vNV(GLuint program1,GLint location1,GLsizei count1,const GLint64EXT * value1)
{
	static PFNGLPROGRAMUNIFORM1I64VNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1I64VNVPROC_HPP>(_impl::_get_proc_address("glProgramUniform1i64vNV","GL_NV_gpu_shader5"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM1UI64NVPROC_HPP)(GLuint,GLint,GLuint64EXT);
static inline void ProgramUniform1ui64NV(GLuint program1,GLint location1,GLuint64EXT x1)
{
	static PFNGLPROGRAMUNIFORM1UI64NVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1UI64NVPROC_HPP>(_impl::_get_proc_address("glProgramUniform1ui64NV","GL_NV_gpu_shader5"));
	 fn(program1,location1,x1);
}
typedef void (*PFNGLPROGRAMUNIFORM1UI64VNVPROC_HPP)(GLuint,GLint,GLsizei,const GLuint64EXT *);
static inline void ProgramUniform1ui64vNV(GLuint program1,GLint location1,GLsizei count1,const GLuint64EXT * value1)
{
	static PFNGLPROGRAMUNIFORM1UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM1UI64VNVPROC_HPP>(_impl::_get_proc_address("glProgramUniform1ui64vNV","GL_NV_gpu_shader5"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM2I64NVPROC_HPP)(GLuint,GLint,GLint64EXT,GLint64EXT);
static inline void ProgramUniform2i64NV(GLuint program1,GLint location1,GLint64EXT x1,GLint64EXT y1)
{
	static PFNGLPROGRAMUNIFORM2I64NVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2I64NVPROC_HPP>(_impl::_get_proc_address("glProgramUniform2i64NV","GL_NV_gpu_shader5"));
	 fn(program1,location1,x1,y1);
}
typedef void (*PFNGLPROGRAMUNIFORM2I64VNVPROC_HPP)(GLuint,GLint,GLsizei,const GLint64EXT *);
static inline void ProgramUniform2i64vNV(GLuint program1,GLint location1,GLsizei count1,const GLint64EXT * value1)
{
	static PFNGLPROGRAMUNIFORM2I64VNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2I64VNVPROC_HPP>(_impl::_get_proc_address("glProgramUniform2i64vNV","GL_NV_gpu_shader5"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM2UI64NVPROC_HPP)(GLuint,GLint,GLuint64EXT,GLuint64EXT);
static inline void ProgramUniform2ui64NV(GLuint program1,GLint location1,GLuint64EXT x1,GLuint64EXT y1)
{
	static PFNGLPROGRAMUNIFORM2UI64NVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2UI64NVPROC_HPP>(_impl::_get_proc_address("glProgramUniform2ui64NV","GL_NV_gpu_shader5"));
	 fn(program1,location1,x1,y1);
}
typedef void (*PFNGLPROGRAMUNIFORM2UI64VNVPROC_HPP)(GLuint,GLint,GLsizei,const GLuint64EXT *);
static inline void ProgramUniform2ui64vNV(GLuint program1,GLint location1,GLsizei count1,const GLuint64EXT * value1)
{
	static PFNGLPROGRAMUNIFORM2UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM2UI64VNVPROC_HPP>(_impl::_get_proc_address("glProgramUniform2ui64vNV","GL_NV_gpu_shader5"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM3I64NVPROC_HPP)(GLuint,GLint,GLint64EXT,GLint64EXT,GLint64EXT);
static inline void ProgramUniform3i64NV(GLuint program1,GLint location1,GLint64EXT x1,GLint64EXT y1,GLint64EXT z1)
{
	static PFNGLPROGRAMUNIFORM3I64NVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3I64NVPROC_HPP>(_impl::_get_proc_address("glProgramUniform3i64NV","GL_NV_gpu_shader5"));
	 fn(program1,location1,x1,y1,z1);
}
typedef void (*PFNGLPROGRAMUNIFORM3I64VNVPROC_HPP)(GLuint,GLint,GLsizei,const GLint64EXT *);
static inline void ProgramUniform3i64vNV(GLuint program1,GLint location1,GLsizei count1,const GLint64EXT * value1)
{
	static PFNGLPROGRAMUNIFORM3I64VNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3I64VNVPROC_HPP>(_impl::_get_proc_address("glProgramUniform3i64vNV","GL_NV_gpu_shader5"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM3UI64NVPROC_HPP)(GLuint,GLint,GLuint64EXT,GLuint64EXT,GLuint64EXT);
static inline void ProgramUniform3ui64NV(GLuint program1,GLint location1,GLuint64EXT x1,GLuint64EXT y1,GLuint64EXT z1)
{
	static PFNGLPROGRAMUNIFORM3UI64NVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3UI64NVPROC_HPP>(_impl::_get_proc_address("glProgramUniform3ui64NV","GL_NV_gpu_shader5"));
	 fn(program1,location1,x1,y1,z1);
}
typedef void (*PFNGLPROGRAMUNIFORM3UI64VNVPROC_HPP)(GLuint,GLint,GLsizei,const GLuint64EXT *);
static inline void ProgramUniform3ui64vNV(GLuint program1,GLint location1,GLsizei count1,const GLuint64EXT * value1)
{
	static PFNGLPROGRAMUNIFORM3UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM3UI64VNVPROC_HPP>(_impl::_get_proc_address("glProgramUniform3ui64vNV","GL_NV_gpu_shader5"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM4I64NVPROC_HPP)(GLuint,GLint,GLint64EXT,GLint64EXT,GLint64EXT,GLint64EXT);
static inline void ProgramUniform4i64NV(GLuint program1,GLint location1,GLint64EXT x1,GLint64EXT y1,GLint64EXT z1,GLint64EXT w1)
{
	static PFNGLPROGRAMUNIFORM4I64NVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4I64NVPROC_HPP>(_impl::_get_proc_address("glProgramUniform4i64NV","GL_NV_gpu_shader5"));
	 fn(program1,location1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMUNIFORM4I64VNVPROC_HPP)(GLuint,GLint,GLsizei,const GLint64EXT *);
static inline void ProgramUniform4i64vNV(GLuint program1,GLint location1,GLsizei count1,const GLint64EXT * value1)
{
	static PFNGLPROGRAMUNIFORM4I64VNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4I64VNVPROC_HPP>(_impl::_get_proc_address("glProgramUniform4i64vNV","GL_NV_gpu_shader5"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORM4UI64NVPROC_HPP)(GLuint,GLint,GLuint64EXT,GLuint64EXT,GLuint64EXT,GLuint64EXT);
static inline void ProgramUniform4ui64NV(GLuint program1,GLint location1,GLuint64EXT x1,GLuint64EXT y1,GLuint64EXT z1,GLuint64EXT w1)
{
	static PFNGLPROGRAMUNIFORM4UI64NVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4UI64NVPROC_HPP>(_impl::_get_proc_address("glProgramUniform4ui64NV","GL_NV_gpu_shader5"));
	 fn(program1,location1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMUNIFORM4UI64VNVPROC_HPP)(GLuint,GLint,GLsizei,const GLuint64EXT *);
static inline void ProgramUniform4ui64vNV(GLuint program1,GLint location1,GLsizei count1,const GLuint64EXT * value1)
{
	static PFNGLPROGRAMUNIFORM4UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORM4UI64VNVPROC_HPP>(_impl::_get_proc_address("glProgramUniform4ui64vNV","GL_NV_gpu_shader5"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLUNIFORM1I64NVPROC_HPP)(GLint,GLint64EXT);
static inline void Uniform1i64NV(GLint location1,GLint64EXT x1)
{
	static PFNGLUNIFORM1I64NVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM1I64NVPROC_HPP>(_impl::_get_proc_address("glUniform1i64NV","GL_NV_gpu_shader5"));
	 fn(location1,x1);
}
typedef void (*PFNGLUNIFORM1I64VNVPROC_HPP)(GLint,GLsizei,const GLint64EXT *);
static inline void Uniform1i64vNV(GLint location1,GLsizei count1,const GLint64EXT * value1)
{
	static PFNGLUNIFORM1I64VNVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM1I64VNVPROC_HPP>(_impl::_get_proc_address("glUniform1i64vNV","GL_NV_gpu_shader5"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM1UI64NVPROC_HPP)(GLint,GLuint64EXT);
static inline void Uniform1ui64NV(GLint location1,GLuint64EXT x1)
{
	static PFNGLUNIFORM1UI64NVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM1UI64NVPROC_HPP>(_impl::_get_proc_address("glUniform1ui64NV","GL_NV_gpu_shader5"));
	 fn(location1,x1);
}
typedef void (*PFNGLUNIFORM1UI64VNVPROC_HPP)(GLint,GLsizei,const GLuint64EXT *);
static inline void Uniform1ui64vNV(GLint location1,GLsizei count1,const GLuint64EXT * value1)
{
	static PFNGLUNIFORM1UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM1UI64VNVPROC_HPP>(_impl::_get_proc_address("glUniform1ui64vNV","GL_NV_gpu_shader5"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM2I64NVPROC_HPP)(GLint,GLint64EXT,GLint64EXT);
static inline void Uniform2i64NV(GLint location1,GLint64EXT x1,GLint64EXT y1)
{
	static PFNGLUNIFORM2I64NVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM2I64NVPROC_HPP>(_impl::_get_proc_address("glUniform2i64NV","GL_NV_gpu_shader5"));
	 fn(location1,x1,y1);
}
typedef void (*PFNGLUNIFORM2I64VNVPROC_HPP)(GLint,GLsizei,const GLint64EXT *);
static inline void Uniform2i64vNV(GLint location1,GLsizei count1,const GLint64EXT * value1)
{
	static PFNGLUNIFORM2I64VNVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM2I64VNVPROC_HPP>(_impl::_get_proc_address("glUniform2i64vNV","GL_NV_gpu_shader5"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM2UI64NVPROC_HPP)(GLint,GLuint64EXT,GLuint64EXT);
static inline void Uniform2ui64NV(GLint location1,GLuint64EXT x1,GLuint64EXT y1)
{
	static PFNGLUNIFORM2UI64NVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM2UI64NVPROC_HPP>(_impl::_get_proc_address("glUniform2ui64NV","GL_NV_gpu_shader5"));
	 fn(location1,x1,y1);
}
typedef void (*PFNGLUNIFORM2UI64VNVPROC_HPP)(GLint,GLsizei,const GLuint64EXT *);
static inline void Uniform2ui64vNV(GLint location1,GLsizei count1,const GLuint64EXT * value1)
{
	static PFNGLUNIFORM2UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM2UI64VNVPROC_HPP>(_impl::_get_proc_address("glUniform2ui64vNV","GL_NV_gpu_shader5"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM3I64NVPROC_HPP)(GLint,GLint64EXT,GLint64EXT,GLint64EXT);
static inline void Uniform3i64NV(GLint location1,GLint64EXT x1,GLint64EXT y1,GLint64EXT z1)
{
	static PFNGLUNIFORM3I64NVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM3I64NVPROC_HPP>(_impl::_get_proc_address("glUniform3i64NV","GL_NV_gpu_shader5"));
	 fn(location1,x1,y1,z1);
}
typedef void (*PFNGLUNIFORM3I64VNVPROC_HPP)(GLint,GLsizei,const GLint64EXT *);
static inline void Uniform3i64vNV(GLint location1,GLsizei count1,const GLint64EXT * value1)
{
	static PFNGLUNIFORM3I64VNVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM3I64VNVPROC_HPP>(_impl::_get_proc_address("glUniform3i64vNV","GL_NV_gpu_shader5"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM3UI64NVPROC_HPP)(GLint,GLuint64EXT,GLuint64EXT,GLuint64EXT);
static inline void Uniform3ui64NV(GLint location1,GLuint64EXT x1,GLuint64EXT y1,GLuint64EXT z1)
{
	static PFNGLUNIFORM3UI64NVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM3UI64NVPROC_HPP>(_impl::_get_proc_address("glUniform3ui64NV","GL_NV_gpu_shader5"));
	 fn(location1,x1,y1,z1);
}
typedef void (*PFNGLUNIFORM3UI64VNVPROC_HPP)(GLint,GLsizei,const GLuint64EXT *);
static inline void Uniform3ui64vNV(GLint location1,GLsizei count1,const GLuint64EXT * value1)
{
	static PFNGLUNIFORM3UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM3UI64VNVPROC_HPP>(_impl::_get_proc_address("glUniform3ui64vNV","GL_NV_gpu_shader5"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM4I64NVPROC_HPP)(GLint,GLint64EXT,GLint64EXT,GLint64EXT,GLint64EXT);
static inline void Uniform4i64NV(GLint location1,GLint64EXT x1,GLint64EXT y1,GLint64EXT z1,GLint64EXT w1)
{
	static PFNGLUNIFORM4I64NVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM4I64NVPROC_HPP>(_impl::_get_proc_address("glUniform4i64NV","GL_NV_gpu_shader5"));
	 fn(location1,x1,y1,z1,w1);
}
typedef void (*PFNGLUNIFORM4I64VNVPROC_HPP)(GLint,GLsizei,const GLint64EXT *);
static inline void Uniform4i64vNV(GLint location1,GLsizei count1,const GLint64EXT * value1)
{
	static PFNGLUNIFORM4I64VNVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM4I64VNVPROC_HPP>(_impl::_get_proc_address("glUniform4i64vNV","GL_NV_gpu_shader5"));
	 fn(location1,count1,value1);
}
typedef void (*PFNGLUNIFORM4UI64NVPROC_HPP)(GLint,GLuint64EXT,GLuint64EXT,GLuint64EXT,GLuint64EXT);
static inline void Uniform4ui64NV(GLint location1,GLuint64EXT x1,GLuint64EXT y1,GLuint64EXT z1,GLuint64EXT w1)
{
	static PFNGLUNIFORM4UI64NVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM4UI64NVPROC_HPP>(_impl::_get_proc_address("glUniform4ui64NV","GL_NV_gpu_shader5"));
	 fn(location1,x1,y1,z1,w1);
}
typedef void (*PFNGLUNIFORM4UI64VNVPROC_HPP)(GLint,GLsizei,const GLuint64EXT *);
static inline void Uniform4ui64vNV(GLint location1,GLsizei count1,const GLuint64EXT * value1)
{
	static PFNGLUNIFORM4UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORM4UI64VNVPROC_HPP>(_impl::_get_proc_address("glUniform4ui64vNV","GL_NV_gpu_shader5"));
	 fn(location1,count1,value1);
}}
#endif

#ifndef GL_NV_half_float
#define GL_NV_half_float
#ifndef GL_HALF_FLOAT_NV
#define GL_HALF_FLOAT_NV 0x140B
#endif //GL_HALF_FLOAT_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLCOLOR3HNVPROC_HPP)(GLhalfNV,GLhalfNV,GLhalfNV);
static inline void Color3hNV(GLhalfNV red1,GLhalfNV green1,GLhalfNV blue1)
{
	static PFNGLCOLOR3HNVPROC_HPP fn=reinterpret_cast<PFNGLCOLOR3HNVPROC_HPP>(_impl::_get_proc_address("glColor3hNV","GL_NV_half_float"));
	 fn(red1,green1,blue1);
}
typedef void (*PFNGLCOLOR3HVNVPROC_HPP)(const GLhalfNV *);
static inline void Color3hvNV(const GLhalfNV * v1)
{
	static PFNGLCOLOR3HVNVPROC_HPP fn=reinterpret_cast<PFNGLCOLOR3HVNVPROC_HPP>(_impl::_get_proc_address("glColor3hvNV","GL_NV_half_float"));
	 fn(v1);
}
typedef void (*PFNGLCOLOR4HNVPROC_HPP)(GLhalfNV,GLhalfNV,GLhalfNV,GLhalfNV);
static inline void Color4hNV(GLhalfNV red1,GLhalfNV green1,GLhalfNV blue1,GLhalfNV alpha1)
{
	static PFNGLCOLOR4HNVPROC_HPP fn=reinterpret_cast<PFNGLCOLOR4HNVPROC_HPP>(_impl::_get_proc_address("glColor4hNV","GL_NV_half_float"));
	 fn(red1,green1,blue1,alpha1);
}
typedef void (*PFNGLCOLOR4HVNVPROC_HPP)(const GLhalfNV *);
static inline void Color4hvNV(const GLhalfNV * v1)
{
	static PFNGLCOLOR4HVNVPROC_HPP fn=reinterpret_cast<PFNGLCOLOR4HVNVPROC_HPP>(_impl::_get_proc_address("glColor4hvNV","GL_NV_half_float"));
	 fn(v1);
}
typedef void (*PFNGLFOGCOORDHNVPROC_HPP)(GLhalfNV);
static inline void FogCoordhNV(GLhalfNV fog1)
{
	static PFNGLFOGCOORDHNVPROC_HPP fn=reinterpret_cast<PFNGLFOGCOORDHNVPROC_HPP>(_impl::_get_proc_address("glFogCoordhNV","GL_NV_half_float"));
	 fn(fog1);
}
typedef void (*PFNGLFOGCOORDHVNVPROC_HPP)(const GLhalfNV *);
static inline void FogCoordhvNV(const GLhalfNV * fog1)
{
	static PFNGLFOGCOORDHVNVPROC_HPP fn=reinterpret_cast<PFNGLFOGCOORDHVNVPROC_HPP>(_impl::_get_proc_address("glFogCoordhvNV","GL_NV_half_float"));
	 fn(fog1);
}
typedef void (*PFNGLMULTITEXCOORD1HNVPROC_HPP)(GLenum,GLhalfNV);
static inline void MultiTexCoord1hNV(GLenum target1,GLhalfNV s1)
{
	static PFNGLMULTITEXCOORD1HNVPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD1HNVPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord1hNV","GL_NV_half_float"));
	 fn(target1,s1);
}
typedef void (*PFNGLMULTITEXCOORD1HVNVPROC_HPP)(GLenum,const GLhalfNV *);
static inline void MultiTexCoord1hvNV(GLenum target1,const GLhalfNV * v1)
{
	static PFNGLMULTITEXCOORD1HVNVPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD1HVNVPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord1hvNV","GL_NV_half_float"));
	 fn(target1,v1);
}
typedef void (*PFNGLMULTITEXCOORD2HNVPROC_HPP)(GLenum,GLhalfNV,GLhalfNV);
static inline void MultiTexCoord2hNV(GLenum target1,GLhalfNV s1,GLhalfNV t1)
{
	static PFNGLMULTITEXCOORD2HNVPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD2HNVPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord2hNV","GL_NV_half_float"));
	 fn(target1,s1,t1);
}
typedef void (*PFNGLMULTITEXCOORD2HVNVPROC_HPP)(GLenum,const GLhalfNV *);
static inline void MultiTexCoord2hvNV(GLenum target1,const GLhalfNV * v1)
{
	static PFNGLMULTITEXCOORD2HVNVPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD2HVNVPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord2hvNV","GL_NV_half_float"));
	 fn(target1,v1);
}
typedef void (*PFNGLMULTITEXCOORD3HNVPROC_HPP)(GLenum,GLhalfNV,GLhalfNV,GLhalfNV);
static inline void MultiTexCoord3hNV(GLenum target1,GLhalfNV s1,GLhalfNV t1,GLhalfNV r1)
{
	static PFNGLMULTITEXCOORD3HNVPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD3HNVPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord3hNV","GL_NV_half_float"));
	 fn(target1,s1,t1,r1);
}
typedef void (*PFNGLMULTITEXCOORD3HVNVPROC_HPP)(GLenum,const GLhalfNV *);
static inline void MultiTexCoord3hvNV(GLenum target1,const GLhalfNV * v1)
{
	static PFNGLMULTITEXCOORD3HVNVPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD3HVNVPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord3hvNV","GL_NV_half_float"));
	 fn(target1,v1);
}
typedef void (*PFNGLMULTITEXCOORD4HNVPROC_HPP)(GLenum,GLhalfNV,GLhalfNV,GLhalfNV,GLhalfNV);
static inline void MultiTexCoord4hNV(GLenum target1,GLhalfNV s1,GLhalfNV t1,GLhalfNV r1,GLhalfNV q1)
{
	static PFNGLMULTITEXCOORD4HNVPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD4HNVPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord4hNV","GL_NV_half_float"));
	 fn(target1,s1,t1,r1,q1);
}
typedef void (*PFNGLMULTITEXCOORD4HVNVPROC_HPP)(GLenum,const GLhalfNV *);
static inline void MultiTexCoord4hvNV(GLenum target1,const GLhalfNV * v1)
{
	static PFNGLMULTITEXCOORD4HVNVPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD4HVNVPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord4hvNV","GL_NV_half_float"));
	 fn(target1,v1);
}
typedef void (*PFNGLNORMAL3HNVPROC_HPP)(GLhalfNV,GLhalfNV,GLhalfNV);
static inline void Normal3hNV(GLhalfNV nx1,GLhalfNV ny1,GLhalfNV nz1)
{
	static PFNGLNORMAL3HNVPROC_HPP fn=reinterpret_cast<PFNGLNORMAL3HNVPROC_HPP>(_impl::_get_proc_address("glNormal3hNV","GL_NV_half_float"));
	 fn(nx1,ny1,nz1);
}
typedef void (*PFNGLNORMAL3HVNVPROC_HPP)(const GLhalfNV *);
static inline void Normal3hvNV(const GLhalfNV * v1)
{
	static PFNGLNORMAL3HVNVPROC_HPP fn=reinterpret_cast<PFNGLNORMAL3HVNVPROC_HPP>(_impl::_get_proc_address("glNormal3hvNV","GL_NV_half_float"));
	 fn(v1);
}
typedef void (*PFNGLSECONDARYCOLOR3HNVPROC_HPP)(GLhalfNV,GLhalfNV,GLhalfNV);
static inline void SecondaryColor3hNV(GLhalfNV red1,GLhalfNV green1,GLhalfNV blue1)
{
	static PFNGLSECONDARYCOLOR3HNVPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLOR3HNVPROC_HPP>(_impl::_get_proc_address("glSecondaryColor3hNV","GL_NV_half_float"));
	 fn(red1,green1,blue1);
}
typedef void (*PFNGLSECONDARYCOLOR3HVNVPROC_HPP)(const GLhalfNV *);
static inline void SecondaryColor3hvNV(const GLhalfNV * v1)
{
	static PFNGLSECONDARYCOLOR3HVNVPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLOR3HVNVPROC_HPP>(_impl::_get_proc_address("glSecondaryColor3hvNV","GL_NV_half_float"));
	 fn(v1);
}
typedef void (*PFNGLTEXCOORD1HNVPROC_HPP)(GLhalfNV);
static inline void TexCoord1hNV(GLhalfNV s1)
{
	static PFNGLTEXCOORD1HNVPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD1HNVPROC_HPP>(_impl::_get_proc_address("glTexCoord1hNV","GL_NV_half_float"));
	 fn(s1);
}
typedef void (*PFNGLTEXCOORD1HVNVPROC_HPP)(const GLhalfNV *);
static inline void TexCoord1hvNV(const GLhalfNV * v1)
{
	static PFNGLTEXCOORD1HVNVPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD1HVNVPROC_HPP>(_impl::_get_proc_address("glTexCoord1hvNV","GL_NV_half_float"));
	 fn(v1);
}
typedef void (*PFNGLTEXCOORD2HNVPROC_HPP)(GLhalfNV,GLhalfNV);
static inline void TexCoord2hNV(GLhalfNV s1,GLhalfNV t1)
{
	static PFNGLTEXCOORD2HNVPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD2HNVPROC_HPP>(_impl::_get_proc_address("glTexCoord2hNV","GL_NV_half_float"));
	 fn(s1,t1);
}
typedef void (*PFNGLTEXCOORD2HVNVPROC_HPP)(const GLhalfNV *);
static inline void TexCoord2hvNV(const GLhalfNV * v1)
{
	static PFNGLTEXCOORD2HVNVPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD2HVNVPROC_HPP>(_impl::_get_proc_address("glTexCoord2hvNV","GL_NV_half_float"));
	 fn(v1);
}
typedef void (*PFNGLTEXCOORD3HNVPROC_HPP)(GLhalfNV,GLhalfNV,GLhalfNV);
static inline void TexCoord3hNV(GLhalfNV s1,GLhalfNV t1,GLhalfNV r1)
{
	static PFNGLTEXCOORD3HNVPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD3HNVPROC_HPP>(_impl::_get_proc_address("glTexCoord3hNV","GL_NV_half_float"));
	 fn(s1,t1,r1);
}
typedef void (*PFNGLTEXCOORD3HVNVPROC_HPP)(const GLhalfNV *);
static inline void TexCoord3hvNV(const GLhalfNV * v1)
{
	static PFNGLTEXCOORD3HVNVPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD3HVNVPROC_HPP>(_impl::_get_proc_address("glTexCoord3hvNV","GL_NV_half_float"));
	 fn(v1);
}
typedef void (*PFNGLTEXCOORD4HNVPROC_HPP)(GLhalfNV,GLhalfNV,GLhalfNV,GLhalfNV);
static inline void TexCoord4hNV(GLhalfNV s1,GLhalfNV t1,GLhalfNV r1,GLhalfNV q1)
{
	static PFNGLTEXCOORD4HNVPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD4HNVPROC_HPP>(_impl::_get_proc_address("glTexCoord4hNV","GL_NV_half_float"));
	 fn(s1,t1,r1,q1);
}
typedef void (*PFNGLTEXCOORD4HVNVPROC_HPP)(const GLhalfNV *);
static inline void TexCoord4hvNV(const GLhalfNV * v1)
{
	static PFNGLTEXCOORD4HVNVPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD4HVNVPROC_HPP>(_impl::_get_proc_address("glTexCoord4hvNV","GL_NV_half_float"));
	 fn(v1);
}
typedef void (*PFNGLVERTEX2HNVPROC_HPP)(GLhalfNV,GLhalfNV);
static inline void Vertex2hNV(GLhalfNV x1,GLhalfNV y1)
{
	static PFNGLVERTEX2HNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEX2HNVPROC_HPP>(_impl::_get_proc_address("glVertex2hNV","GL_NV_half_float"));
	 fn(x1,y1);
}
typedef void (*PFNGLVERTEX2HVNVPROC_HPP)(const GLhalfNV *);
static inline void Vertex2hvNV(const GLhalfNV * v1)
{
	static PFNGLVERTEX2HVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEX2HVNVPROC_HPP>(_impl::_get_proc_address("glVertex2hvNV","GL_NV_half_float"));
	 fn(v1);
}
typedef void (*PFNGLVERTEX3HNVPROC_HPP)(GLhalfNV,GLhalfNV,GLhalfNV);
static inline void Vertex3hNV(GLhalfNV x1,GLhalfNV y1,GLhalfNV z1)
{
	static PFNGLVERTEX3HNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEX3HNVPROC_HPP>(_impl::_get_proc_address("glVertex3hNV","GL_NV_half_float"));
	 fn(x1,y1,z1);
}
typedef void (*PFNGLVERTEX3HVNVPROC_HPP)(const GLhalfNV *);
static inline void Vertex3hvNV(const GLhalfNV * v1)
{
	static PFNGLVERTEX3HVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEX3HVNVPROC_HPP>(_impl::_get_proc_address("glVertex3hvNV","GL_NV_half_float"));
	 fn(v1);
}
typedef void (*PFNGLVERTEX4HNVPROC_HPP)(GLhalfNV,GLhalfNV,GLhalfNV,GLhalfNV);
static inline void Vertex4hNV(GLhalfNV x1,GLhalfNV y1,GLhalfNV z1,GLhalfNV w1)
{
	static PFNGLVERTEX4HNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEX4HNVPROC_HPP>(_impl::_get_proc_address("glVertex4hNV","GL_NV_half_float"));
	 fn(x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEX4HVNVPROC_HPP)(const GLhalfNV *);
static inline void Vertex4hvNV(const GLhalfNV * v1)
{
	static PFNGLVERTEX4HVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEX4HVNVPROC_HPP>(_impl::_get_proc_address("glVertex4hvNV","GL_NV_half_float"));
	 fn(v1);
}
typedef void (*PFNGLVERTEXATTRIB1HNVPROC_HPP)(GLuint,GLhalfNV);
static inline void VertexAttrib1hNV(GLuint index1,GLhalfNV x1)
{
	static PFNGLVERTEXATTRIB1HNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1HNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1hNV","GL_NV_half_float"));
	 fn(index1,x1);
}
typedef void (*PFNGLVERTEXATTRIB1HVNVPROC_HPP)(GLuint,const GLhalfNV *);
static inline void VertexAttrib1hvNV(GLuint index1,const GLhalfNV * v1)
{
	static PFNGLVERTEXATTRIB1HVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1HVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1hvNV","GL_NV_half_float"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB2HNVPROC_HPP)(GLuint,GLhalfNV,GLhalfNV);
static inline void VertexAttrib2hNV(GLuint index1,GLhalfNV x1,GLhalfNV y1)
{
	static PFNGLVERTEXATTRIB2HNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2HNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2hNV","GL_NV_half_float"));
	 fn(index1,x1,y1);
}
typedef void (*PFNGLVERTEXATTRIB2HVNVPROC_HPP)(GLuint,const GLhalfNV *);
static inline void VertexAttrib2hvNV(GLuint index1,const GLhalfNV * v1)
{
	static PFNGLVERTEXATTRIB2HVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2HVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2hvNV","GL_NV_half_float"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB3HNVPROC_HPP)(GLuint,GLhalfNV,GLhalfNV,GLhalfNV);
static inline void VertexAttrib3hNV(GLuint index1,GLhalfNV x1,GLhalfNV y1,GLhalfNV z1)
{
	static PFNGLVERTEXATTRIB3HNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3HNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3hNV","GL_NV_half_float"));
	 fn(index1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXATTRIB3HVNVPROC_HPP)(GLuint,const GLhalfNV *);
static inline void VertexAttrib3hvNV(GLuint index1,const GLhalfNV * v1)
{
	static PFNGLVERTEXATTRIB3HVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3HVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3hvNV","GL_NV_half_float"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4HNVPROC_HPP)(GLuint,GLhalfNV,GLhalfNV,GLhalfNV,GLhalfNV);
static inline void VertexAttrib4hNV(GLuint index1,GLhalfNV x1,GLhalfNV y1,GLhalfNV z1,GLhalfNV w1)
{
	static PFNGLVERTEXATTRIB4HNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4HNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4hNV","GL_NV_half_float"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIB4HVNVPROC_HPP)(GLuint,const GLhalfNV *);
static inline void VertexAttrib4hvNV(GLuint index1,const GLhalfNV * v1)
{
	static PFNGLVERTEXATTRIB4HVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4HVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4hvNV","GL_NV_half_float"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBS1HVNVPROC_HPP)(GLuint,GLsizei,const GLhalfNV *);
static inline void VertexAttribs1hvNV(GLuint index1,GLsizei n1,const GLhalfNV * v1)
{
	static PFNGLVERTEXATTRIBS1HVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBS1HVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribs1hvNV","GL_NV_half_float"));
	 fn(index1,n1,v1);
}
typedef void (*PFNGLVERTEXATTRIBS2HVNVPROC_HPP)(GLuint,GLsizei,const GLhalfNV *);
static inline void VertexAttribs2hvNV(GLuint index1,GLsizei n1,const GLhalfNV * v1)
{
	static PFNGLVERTEXATTRIBS2HVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBS2HVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribs2hvNV","GL_NV_half_float"));
	 fn(index1,n1,v1);
}
typedef void (*PFNGLVERTEXATTRIBS3HVNVPROC_HPP)(GLuint,GLsizei,const GLhalfNV *);
static inline void VertexAttribs3hvNV(GLuint index1,GLsizei n1,const GLhalfNV * v1)
{
	static PFNGLVERTEXATTRIBS3HVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBS3HVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribs3hvNV","GL_NV_half_float"));
	 fn(index1,n1,v1);
}
typedef void (*PFNGLVERTEXATTRIBS4HVNVPROC_HPP)(GLuint,GLsizei,const GLhalfNV *);
static inline void VertexAttribs4hvNV(GLuint index1,GLsizei n1,const GLhalfNV * v1)
{
	static PFNGLVERTEXATTRIBS4HVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBS4HVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribs4hvNV","GL_NV_half_float"));
	 fn(index1,n1,v1);
}
typedef void (*PFNGLVERTEXWEIGHTHNVPROC_HPP)(GLhalfNV);
static inline void VertexWeighthNV(GLhalfNV weight1)
{
	static PFNGLVERTEXWEIGHTHNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXWEIGHTHNVPROC_HPP>(_impl::_get_proc_address("glVertexWeighthNV","GL_NV_half_float"));
	 fn(weight1);
}
typedef void (*PFNGLVERTEXWEIGHTHVNVPROC_HPP)(const GLhalfNV *);
static inline void VertexWeighthvNV(const GLhalfNV * weight1)
{
	static PFNGLVERTEXWEIGHTHVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXWEIGHTHVNVPROC_HPP>(_impl::_get_proc_address("glVertexWeighthvNV","GL_NV_half_float"));
	 fn(weight1);
}}
#endif

#ifndef GL_NV_light_max_exponent
#define GL_NV_light_max_exponent
#ifndef GL_MAX_SHININESS_NV
#define GL_MAX_SHININESS_NV 0x8504
#endif //GL_MAX_SHININESS_NV
#ifndef GL_MAX_SPOT_EXPONENT_NV
#define GL_MAX_SPOT_EXPONENT_NV 0x8505
#endif //GL_MAX_SPOT_EXPONENT_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_multisample_coverage
#define GL_NV_multisample_coverage
#ifndef GL_SAMPLES_ARB
#define GL_SAMPLES_ARB 0x80A9
#endif //GL_SAMPLES_ARB
#ifndef GL_COLOR_SAMPLES_NV
#define GL_COLOR_SAMPLES_NV 0x8E20
#endif //GL_COLOR_SAMPLES_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_multisample_filter_hint
#define GL_NV_multisample_filter_hint
#ifndef GL_MULTISAMPLE_FILTER_HINT_NV
#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534
#endif //GL_MULTISAMPLE_FILTER_HINT_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_occlusion_query
#define GL_NV_occlusion_query
#ifndef GL_PIXEL_COUNTER_BITS_NV
#define GL_PIXEL_COUNTER_BITS_NV 0x8864
#endif //GL_PIXEL_COUNTER_BITS_NV
#ifndef GL_CURRENT_OCCLUSION_QUERY_ID_NV
#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865
#endif //GL_CURRENT_OCCLUSION_QUERY_ID_NV
#ifndef GL_PIXEL_COUNT_NV
#define GL_PIXEL_COUNT_NV 0x8866
#endif //GL_PIXEL_COUNT_NV
#ifndef GL_PIXEL_COUNT_AVAILABLE_NV
#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867
#endif //GL_PIXEL_COUNT_AVAILABLE_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLBEGINOCCLUSIONQUERYNVPROC_HPP)(GLuint);
static inline void BeginOcclusionQueryNV(GLuint id1)
{
	static PFNGLBEGINOCCLUSIONQUERYNVPROC_HPP fn=reinterpret_cast<PFNGLBEGINOCCLUSIONQUERYNVPROC_HPP>(_impl::_get_proc_address("glBeginOcclusionQueryNV","GL_NV_occlusion_query"));
	 fn(id1);
}
typedef void (*PFNGLDELETEOCCLUSIONQUERIESNVPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteOcclusionQueriesNV(GLsizei n1,const GLuint * ids1)
{
	static PFNGLDELETEOCCLUSIONQUERIESNVPROC_HPP fn=reinterpret_cast<PFNGLDELETEOCCLUSIONQUERIESNVPROC_HPP>(_impl::_get_proc_address("glDeleteOcclusionQueriesNV","GL_NV_occlusion_query"));
	 fn(n1,ids1);
}
typedef void (*PFNGLENDOCCLUSIONQUERYNVPROC_HPP)();
static inline void EndOcclusionQueryNV()
{
	static PFNGLENDOCCLUSIONQUERYNVPROC_HPP fn=reinterpret_cast<PFNGLENDOCCLUSIONQUERYNVPROC_HPP>(_impl::_get_proc_address("glEndOcclusionQueryNV","GL_NV_occlusion_query"));
	 fn();
}
typedef void (*PFNGLGENOCCLUSIONQUERIESNVPROC_HPP)(GLsizei,GLuint *);
static inline void GenOcclusionQueriesNV(GLsizei n1,GLuint * ids1)
{
	static PFNGLGENOCCLUSIONQUERIESNVPROC_HPP fn=reinterpret_cast<PFNGLGENOCCLUSIONQUERIESNVPROC_HPP>(_impl::_get_proc_address("glGenOcclusionQueriesNV","GL_NV_occlusion_query"));
	 fn(n1,ids1);
}
typedef void (*PFNGLGETOCCLUSIONQUERYIVNVPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetOcclusionQueryivNV(GLuint id1,GLenum pname1,GLint * params1)
{
	static PFNGLGETOCCLUSIONQUERYIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETOCCLUSIONQUERYIVNVPROC_HPP>(_impl::_get_proc_address("glGetOcclusionQueryivNV","GL_NV_occlusion_query"));
	 fn(id1,pname1,params1);
}
typedef void (*PFNGLGETOCCLUSIONQUERYUIVNVPROC_HPP)(GLuint,GLenum,GLuint *);
static inline void GetOcclusionQueryuivNV(GLuint id1,GLenum pname1,GLuint * params1)
{
	static PFNGLGETOCCLUSIONQUERYUIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETOCCLUSIONQUERYUIVNVPROC_HPP>(_impl::_get_proc_address("glGetOcclusionQueryuivNV","GL_NV_occlusion_query"));
	 fn(id1,pname1,params1);
}
typedef GLboolean (*PFNGLISOCCLUSIONQUERYNVPROC_HPP)(GLuint);
static inline GLboolean IsOcclusionQueryNV(GLuint id1)
{
	static PFNGLISOCCLUSIONQUERYNVPROC_HPP fn=reinterpret_cast<PFNGLISOCCLUSIONQUERYNVPROC_HPP>(_impl::_get_proc_address("glIsOcclusionQueryNV","GL_NV_occlusion_query"));
	return fn(id1);
}}
#endif

#ifndef GL_NV_packed_depth_stencil
#define GL_NV_packed_depth_stencil
#ifndef GL_DEPTH_STENCIL_NV
#define GL_DEPTH_STENCIL_NV 0x84F9
#endif //GL_DEPTH_STENCIL_NV
#ifndef GL_UNSIGNED_INT_24_8_NV
#define GL_UNSIGNED_INT_24_8_NV 0x84FA
#endif //GL_UNSIGNED_INT_24_8_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_parameter_buffer_object
#define GL_NV_parameter_buffer_object
#ifndef GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV
#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0
#endif //GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV
#ifndef GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV
#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1
#endif //GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV
#ifndef GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV
#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2
#endif //GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV
#ifndef GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV
#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3
#endif //GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV
#ifndef GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV
#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4
#endif //GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC_HPP)(GLenum,GLuint,GLuint,GLsizei,const GLint *);
static inline void ProgramBufferParametersIivNV(GLenum target1,GLuint bindingIndex1,GLuint wordIndex1,GLsizei count1,const GLint * params1)
{
	static PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC_HPP>(_impl::_get_proc_address("glProgramBufferParametersIivNV","GL_NV_parameter_buffer_object"));
	 fn(target1,bindingIndex1,wordIndex1,count1,params1);
}
typedef void (*PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC_HPP)(GLenum,GLuint,GLuint,GLsizei,const GLuint *);
static inline void ProgramBufferParametersIuivNV(GLenum target1,GLuint bindingIndex1,GLuint wordIndex1,GLsizei count1,const GLuint * params1)
{
	static PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC_HPP>(_impl::_get_proc_address("glProgramBufferParametersIuivNV","GL_NV_parameter_buffer_object"));
	 fn(target1,bindingIndex1,wordIndex1,count1,params1);
}
typedef void (*PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC_HPP)(GLenum,GLuint,GLuint,GLsizei,const GLfloat *);
static inline void ProgramBufferParametersfvNV(GLenum target1,GLuint bindingIndex1,GLuint wordIndex1,GLsizei count1,const GLfloat * params1)
{
	static PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC_HPP>(_impl::_get_proc_address("glProgramBufferParametersfvNV","GL_NV_parameter_buffer_object"));
	 fn(target1,bindingIndex1,wordIndex1,count1,params1);
}}
#endif

#ifndef GL_NV_parameter_buffer_object2
#define GL_NV_parameter_buffer_object2
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_path_rendering
#define GL_NV_path_rendering
#ifndef GL_CLOSE_PATH_NV
#define GL_CLOSE_PATH_NV 0x00
#endif //GL_CLOSE_PATH_NV
#ifndef GL_FONT_X_MIN_BOUNDS_BIT_NV
#define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000
#endif //GL_FONT_X_MIN_BOUNDS_BIT_NV
#ifndef GL_FONT_Y_MIN_BOUNDS_BIT_NV
#define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000
#endif //GL_FONT_Y_MIN_BOUNDS_BIT_NV
#ifndef GL_FONT_X_MAX_BOUNDS_BIT_NV
#define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000
#endif //GL_FONT_X_MAX_BOUNDS_BIT_NV
#ifndef GL_FONT_Y_MAX_BOUNDS_BIT_NV
#define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000
#endif //GL_FONT_Y_MAX_BOUNDS_BIT_NV
#ifndef GL_FONT_UNITS_PER_EM_BIT_NV
#define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000
#endif //GL_FONT_UNITS_PER_EM_BIT_NV
#ifndef GL_FONT_ASCENDER_BIT_NV
#define GL_FONT_ASCENDER_BIT_NV 0x00200000
#endif //GL_FONT_ASCENDER_BIT_NV
#ifndef GL_FONT_DESCENDER_BIT_NV
#define GL_FONT_DESCENDER_BIT_NV 0x00400000
#endif //GL_FONT_DESCENDER_BIT_NV
#ifndef GL_FONT_HEIGHT_BIT_NV
#define GL_FONT_HEIGHT_BIT_NV 0x00800000
#endif //GL_FONT_HEIGHT_BIT_NV
#ifndef GL_BOLD_BIT_NV
#define GL_BOLD_BIT_NV 0x01
#endif //GL_BOLD_BIT_NV
#ifndef GL_GLYPH_WIDTH_BIT_NV
#define GL_GLYPH_WIDTH_BIT_NV 0x01
#endif //GL_GLYPH_WIDTH_BIT_NV
#ifndef GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV
#define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000
#endif //GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV
#ifndef GL_ITALIC_BIT_NV
#define GL_ITALIC_BIT_NV 0x02
#endif //GL_ITALIC_BIT_NV
#ifndef GL_MOVE_TO_NV
#define GL_MOVE_TO_NV 0x02
#endif //GL_MOVE_TO_NV
#ifndef GL_GLYPH_HEIGHT_BIT_NV
#define GL_GLYPH_HEIGHT_BIT_NV 0x02
#endif //GL_GLYPH_HEIGHT_BIT_NV
#ifndef GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV
#define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000
#endif //GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV
#ifndef GL_RELATIVE_MOVE_TO_NV
#define GL_RELATIVE_MOVE_TO_NV 0x03
#endif //GL_RELATIVE_MOVE_TO_NV
#ifndef GL_LINE_TO_NV
#define GL_LINE_TO_NV 0x04
#endif //GL_LINE_TO_NV
#ifndef GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV
#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04
#endif //GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV
#ifndef GL_FONT_UNDERLINE_POSITION_BIT_NV
#define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000
#endif //GL_FONT_UNDERLINE_POSITION_BIT_NV
#ifndef GL_RELATIVE_LINE_TO_NV
#define GL_RELATIVE_LINE_TO_NV 0x05
#endif //GL_RELATIVE_LINE_TO_NV
#ifndef GL_HORIZONTAL_LINE_TO_NV
#define GL_HORIZONTAL_LINE_TO_NV 0x06
#endif //GL_HORIZONTAL_LINE_TO_NV
#ifndef GL_RELATIVE_HORIZONTAL_LINE_TO_NV
#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07
#endif //GL_RELATIVE_HORIZONTAL_LINE_TO_NV
#ifndef GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV
#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08
#endif //GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV
#ifndef GL_VERTICAL_LINE_TO_NV
#define GL_VERTICAL_LINE_TO_NV 0x08
#endif //GL_VERTICAL_LINE_TO_NV
#ifndef GL_FONT_UNDERLINE_THICKNESS_BIT_NV
#define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000
#endif //GL_FONT_UNDERLINE_THICKNESS_BIT_NV
#ifndef GL_RELATIVE_VERTICAL_LINE_TO_NV
#define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09
#endif //GL_RELATIVE_VERTICAL_LINE_TO_NV
#ifndef GL_QUADRATIC_CURVE_TO_NV
#define GL_QUADRATIC_CURVE_TO_NV 0x0A
#endif //GL_QUADRATIC_CURVE_TO_NV
#ifndef GL_RELATIVE_QUADRATIC_CURVE_TO_NV
#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B
#endif //GL_RELATIVE_QUADRATIC_CURVE_TO_NV
#ifndef GL_PATH_MODELVIEW_STACK_DEPTH_NV
#define GL_PATH_MODELVIEW_STACK_DEPTH_NV 0x0BA3
#endif //GL_PATH_MODELVIEW_STACK_DEPTH_NV
#ifndef GL_PATH_PROJECTION_STACK_DEPTH_NV
#define GL_PATH_PROJECTION_STACK_DEPTH_NV 0x0BA4
#endif //GL_PATH_PROJECTION_STACK_DEPTH_NV
#ifndef GL_PATH_MODELVIEW_MATRIX_NV
#define GL_PATH_MODELVIEW_MATRIX_NV 0x0BA6
#endif //GL_PATH_MODELVIEW_MATRIX_NV
#ifndef GL_PATH_PROJECTION_MATRIX_NV
#define GL_PATH_PROJECTION_MATRIX_NV 0x0BA7
#endif //GL_PATH_PROJECTION_MATRIX_NV
#ifndef GL_CUBIC_CURVE_TO_NV
#define GL_CUBIC_CURVE_TO_NV 0x0C
#endif //GL_CUBIC_CURVE_TO_NV
#ifndef GL_RELATIVE_CUBIC_CURVE_TO_NV
#define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D
#endif //GL_RELATIVE_CUBIC_CURVE_TO_NV
#ifndef GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV
#define GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV 0x0D36
#endif //GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV
#ifndef GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV
#define GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV 0x0D38
#endif //GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV
#ifndef GL_SMOOTH_QUADRATIC_CURVE_TO_NV
#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E
#endif //GL_SMOOTH_QUADRATIC_CURVE_TO_NV
#ifndef GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV
#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F
#endif //GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV
#ifndef GL_SMOOTH_CUBIC_CURVE_TO_NV
#define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10
#endif //GL_SMOOTH_CUBIC_CURVE_TO_NV
#ifndef GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV
#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10
#endif //GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV
#ifndef GL_GLYPH_HAS_KERNING_BIT_NV
#define GL_GLYPH_HAS_KERNING_BIT_NV 0x100
#endif //GL_GLYPH_HAS_KERNING_BIT_NV
#ifndef GL_FONT_HAS_KERNING_BIT_NV
#define GL_FONT_HAS_KERNING_BIT_NV 0x10000000
#endif //GL_FONT_HAS_KERNING_BIT_NV
#ifndef GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV
#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11
#endif //GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV
#ifndef GL_SMALL_CCW_ARC_TO_NV
#define GL_SMALL_CCW_ARC_TO_NV 0x12
#endif //GL_SMALL_CCW_ARC_TO_NV
#ifndef GL_RELATIVE_SMALL_CCW_ARC_TO_NV
#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13
#endif //GL_RELATIVE_SMALL_CCW_ARC_TO_NV
#ifndef GL_SMALL_CW_ARC_TO_NV
#define GL_SMALL_CW_ARC_TO_NV 0x14
#endif //GL_SMALL_CW_ARC_TO_NV
#ifndef GL_RELATIVE_SMALL_CW_ARC_TO_NV
#define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15
#endif //GL_RELATIVE_SMALL_CW_ARC_TO_NV
#ifndef GL_LARGE_CCW_ARC_TO_NV
#define GL_LARGE_CCW_ARC_TO_NV 0x16
#endif //GL_LARGE_CCW_ARC_TO_NV
#ifndef GL_RELATIVE_LARGE_CCW_ARC_TO_NV
#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17
#endif //GL_RELATIVE_LARGE_CCW_ARC_TO_NV
#ifndef GL_PATH_MODELVIEW_NV
#define GL_PATH_MODELVIEW_NV 0x1700
#endif //GL_PATH_MODELVIEW_NV
#ifndef GL_PATH_PROJECTION_NV
#define GL_PATH_PROJECTION_NV 0x1701
#endif //GL_PATH_PROJECTION_NV
#ifndef GL_LARGE_CW_ARC_TO_NV
#define GL_LARGE_CW_ARC_TO_NV 0x18
#endif //GL_LARGE_CW_ARC_TO_NV
#ifndef GL_RELATIVE_LARGE_CW_ARC_TO_NV
#define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19
#endif //GL_RELATIVE_LARGE_CW_ARC_TO_NV
#ifndef GL_CONIC_CURVE_TO_NV
#define GL_CONIC_CURVE_TO_NV 0x1A
#endif //GL_CONIC_CURVE_TO_NV
#ifndef GL_RELATIVE_CONIC_CURVE_TO_NV
#define GL_RELATIVE_CONIC_CURVE_TO_NV 0x1B
#endif //GL_RELATIVE_CONIC_CURVE_TO_NV
#ifndef GL_GLYPH_VERTICAL_BEARING_X_BIT_NV
#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20
#endif //GL_GLYPH_VERTICAL_BEARING_X_BIT_NV
#ifndef GL_FONT_NUM_GLYPH_INDICES_BIT_NV
#define GL_FONT_NUM_GLYPH_INDICES_BIT_NV 0x20000000
#endif //GL_FONT_NUM_GLYPH_INDICES_BIT_NV
#ifndef GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV
#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40
#endif //GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV
#ifndef GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV
#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80
#endif //GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV
#ifndef GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV
#define GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV 0x84E3
#endif //GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV
#ifndef GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV
#define GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV 0x84E4
#endif //GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV
#ifndef GL_PRIMARY_COLOR_NV
#define GL_PRIMARY_COLOR_NV 0x852C
#endif //GL_PRIMARY_COLOR_NV
#ifndef GL_SECONDARY_COLOR_NV
#define GL_SECONDARY_COLOR_NV 0x852D
#endif //GL_SECONDARY_COLOR_NV
#ifndef GL_PRIMARY_COLOR
#define GL_PRIMARY_COLOR 0x8577
#endif //GL_PRIMARY_COLOR
#ifndef GL_PATH_FORMAT_SVG_NV
#define GL_PATH_FORMAT_SVG_NV 0x9070
#endif //GL_PATH_FORMAT_SVG_NV
#ifndef GL_PATH_FORMAT_PS_NV
#define GL_PATH_FORMAT_PS_NV 0x9071
#endif //GL_PATH_FORMAT_PS_NV
#ifndef GL_STANDARD_FONT_NAME_NV
#define GL_STANDARD_FONT_NAME_NV 0x9072
#endif //GL_STANDARD_FONT_NAME_NV
#ifndef GL_SYSTEM_FONT_NAME_NV
#define GL_SYSTEM_FONT_NAME_NV 0x9073
#endif //GL_SYSTEM_FONT_NAME_NV
#ifndef GL_FILE_NAME_NV
#define GL_FILE_NAME_NV 0x9074
#endif //GL_FILE_NAME_NV
#ifndef GL_PATH_STROKE_WIDTH_NV
#define GL_PATH_STROKE_WIDTH_NV 0x9075
#endif //GL_PATH_STROKE_WIDTH_NV
#ifndef GL_PATH_END_CAPS_NV
#define GL_PATH_END_CAPS_NV 0x9076
#endif //GL_PATH_END_CAPS_NV
#ifndef GL_PATH_INITIAL_END_CAP_NV
#define GL_PATH_INITIAL_END_CAP_NV 0x9077
#endif //GL_PATH_INITIAL_END_CAP_NV
#ifndef GL_PATH_TERMINAL_END_CAP_NV
#define GL_PATH_TERMINAL_END_CAP_NV 0x9078
#endif //GL_PATH_TERMINAL_END_CAP_NV
#ifndef GL_PATH_JOIN_STYLE_NV
#define GL_PATH_JOIN_STYLE_NV 0x9079
#endif //GL_PATH_JOIN_STYLE_NV
#ifndef GL_PATH_MITER_LIMIT_NV
#define GL_PATH_MITER_LIMIT_NV 0x907A
#endif //GL_PATH_MITER_LIMIT_NV
#ifndef GL_PATH_DASH_CAPS_NV
#define GL_PATH_DASH_CAPS_NV 0x907B
#endif //GL_PATH_DASH_CAPS_NV
#ifndef GL_PATH_INITIAL_DASH_CAP_NV
#define GL_PATH_INITIAL_DASH_CAP_NV 0x907C
#endif //GL_PATH_INITIAL_DASH_CAP_NV
#ifndef GL_PATH_TERMINAL_DASH_CAP_NV
#define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D
#endif //GL_PATH_TERMINAL_DASH_CAP_NV
#ifndef GL_PATH_DASH_OFFSET_NV
#define GL_PATH_DASH_OFFSET_NV 0x907E
#endif //GL_PATH_DASH_OFFSET_NV
#ifndef GL_PATH_CLIENT_LENGTH_NV
#define GL_PATH_CLIENT_LENGTH_NV 0x907F
#endif //GL_PATH_CLIENT_LENGTH_NV
#ifndef GL_PATH_FILL_MODE_NV
#define GL_PATH_FILL_MODE_NV 0x9080
#endif //GL_PATH_FILL_MODE_NV
#ifndef GL_PATH_FILL_MASK_NV
#define GL_PATH_FILL_MASK_NV 0x9081
#endif //GL_PATH_FILL_MASK_NV
#ifndef GL_PATH_FILL_COVER_MODE_NV
#define GL_PATH_FILL_COVER_MODE_NV 0x9082
#endif //GL_PATH_FILL_COVER_MODE_NV
#ifndef GL_PATH_STROKE_COVER_MODE_NV
#define GL_PATH_STROKE_COVER_MODE_NV 0x9083
#endif //GL_PATH_STROKE_COVER_MODE_NV
#ifndef GL_PATH_STROKE_MASK_NV
#define GL_PATH_STROKE_MASK_NV 0x9084
#endif //GL_PATH_STROKE_MASK_NV
#ifndef GL_COUNT_UP_NV
#define GL_COUNT_UP_NV 0x9088
#endif //GL_COUNT_UP_NV
#ifndef GL_COUNT_DOWN_NV
#define GL_COUNT_DOWN_NV 0x9089
#endif //GL_COUNT_DOWN_NV
#ifndef GL_PATH_OBJECT_BOUNDING_BOX_NV
#define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A
#endif //GL_PATH_OBJECT_BOUNDING_BOX_NV
#ifndef GL_CONVEX_HULL_NV
#define GL_CONVEX_HULL_NV 0x908B
#endif //GL_CONVEX_HULL_NV
#ifndef GL_BOUNDING_BOX_NV
#define GL_BOUNDING_BOX_NV 0x908D
#endif //GL_BOUNDING_BOX_NV
#ifndef GL_TRANSLATE_X_NV
#define GL_TRANSLATE_X_NV 0x908E
#endif //GL_TRANSLATE_X_NV
#ifndef GL_TRANSLATE_Y_NV
#define GL_TRANSLATE_Y_NV 0x908F
#endif //GL_TRANSLATE_Y_NV
#ifndef GL_TRANSLATE_2D_NV
#define GL_TRANSLATE_2D_NV 0x9090
#endif //GL_TRANSLATE_2D_NV
#ifndef GL_TRANSLATE_3D_NV
#define GL_TRANSLATE_3D_NV 0x9091
#endif //GL_TRANSLATE_3D_NV
#ifndef GL_AFFINE_2D_NV
#define GL_AFFINE_2D_NV 0x9092
#endif //GL_AFFINE_2D_NV
#ifndef GL_AFFINE_3D_NV
#define GL_AFFINE_3D_NV 0x9094
#endif //GL_AFFINE_3D_NV
#ifndef GL_TRANSPOSE_AFFINE_2D_NV
#define GL_TRANSPOSE_AFFINE_2D_NV 0x9096
#endif //GL_TRANSPOSE_AFFINE_2D_NV
#ifndef GL_TRANSPOSE_AFFINE_3D_NV
#define GL_TRANSPOSE_AFFINE_3D_NV 0x9098
#endif //GL_TRANSPOSE_AFFINE_3D_NV
#ifndef GL_UTF8_NV
#define GL_UTF8_NV 0x909A
#endif //GL_UTF8_NV
#ifndef GL_UTF16_NV
#define GL_UTF16_NV 0x909B
#endif //GL_UTF16_NV
#ifndef GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV
#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C
#endif //GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV
#ifndef GL_PATH_COMMAND_COUNT_NV
#define GL_PATH_COMMAND_COUNT_NV 0x909D
#endif //GL_PATH_COMMAND_COUNT_NV
#ifndef GL_PATH_COORD_COUNT_NV
#define GL_PATH_COORD_COUNT_NV 0x909E
#endif //GL_PATH_COORD_COUNT_NV
#ifndef GL_PATH_DASH_ARRAY_COUNT_NV
#define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F
#endif //GL_PATH_DASH_ARRAY_COUNT_NV
#ifndef GL_PATH_COMPUTED_LENGTH_NV
#define GL_PATH_COMPUTED_LENGTH_NV 0x90A0
#endif //GL_PATH_COMPUTED_LENGTH_NV
#ifndef GL_PATH_FILL_BOUNDING_BOX_NV
#define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1
#endif //GL_PATH_FILL_BOUNDING_BOX_NV
#ifndef GL_PATH_STROKE_BOUNDING_BOX_NV
#define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2
#endif //GL_PATH_STROKE_BOUNDING_BOX_NV
#ifndef GL_SQUARE_NV
#define GL_SQUARE_NV 0x90A3
#endif //GL_SQUARE_NV
#ifndef GL_ROUND_NV
#define GL_ROUND_NV 0x90A4
#endif //GL_ROUND_NV
#ifndef GL_TRIANGULAR_NV
#define GL_TRIANGULAR_NV 0x90A5
#endif //GL_TRIANGULAR_NV
#ifndef GL_BEVEL_NV
#define GL_BEVEL_NV 0x90A6
#endif //GL_BEVEL_NV
#ifndef GL_MITER_REVERT_NV
#define GL_MITER_REVERT_NV 0x90A7
#endif //GL_MITER_REVERT_NV
#ifndef GL_MITER_TRUNCATE_NV
#define GL_MITER_TRUNCATE_NV 0x90A8
#endif //GL_MITER_TRUNCATE_NV
#ifndef GL_SKIP_MISSING_GLYPH_NV
#define GL_SKIP_MISSING_GLYPH_NV 0x90A9
#endif //GL_SKIP_MISSING_GLYPH_NV
#ifndef GL_USE_MISSING_GLYPH_NV
#define GL_USE_MISSING_GLYPH_NV 0x90AA
#endif //GL_USE_MISSING_GLYPH_NV
#ifndef GL_PATH_ERROR_POSITION_NV
#define GL_PATH_ERROR_POSITION_NV 0x90AB
#endif //GL_PATH_ERROR_POSITION_NV
#ifndef GL_PATH_FOG_GEN_MODE_NV
#define GL_PATH_FOG_GEN_MODE_NV 0x90AC
#endif //GL_PATH_FOG_GEN_MODE_NV
#ifndef GL_ACCUM_ADJACENT_PAIRS_NV
#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD
#endif //GL_ACCUM_ADJACENT_PAIRS_NV
#ifndef GL_ADJACENT_PAIRS_NV
#define GL_ADJACENT_PAIRS_NV 0x90AE
#endif //GL_ADJACENT_PAIRS_NV
#ifndef GL_FIRST_TO_REST_NV
#define GL_FIRST_TO_REST_NV 0x90AF
#endif //GL_FIRST_TO_REST_NV
#ifndef GL_PATH_GEN_MODE_NV
#define GL_PATH_GEN_MODE_NV 0x90B0
#endif //GL_PATH_GEN_MODE_NV
#ifndef GL_PATH_GEN_COEFF_NV
#define GL_PATH_GEN_COEFF_NV 0x90B1
#endif //GL_PATH_GEN_COEFF_NV
#ifndef GL_PATH_GEN_COLOR_FORMAT_NV
#define GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2
#endif //GL_PATH_GEN_COLOR_FORMAT_NV
#ifndef GL_PATH_GEN_COMPONENTS_NV
#define GL_PATH_GEN_COMPONENTS_NV 0x90B3
#endif //GL_PATH_GEN_COMPONENTS_NV
#ifndef GL_PATH_DASH_OFFSET_RESET_NV
#define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4
#endif //GL_PATH_DASH_OFFSET_RESET_NV
#ifndef GL_MOVE_TO_RESETS_NV
#define GL_MOVE_TO_RESETS_NV 0x90B5
#endif //GL_MOVE_TO_RESETS_NV
#ifndef GL_MOVE_TO_CONTINUES_NV
#define GL_MOVE_TO_CONTINUES_NV 0x90B6
#endif //GL_MOVE_TO_CONTINUES_NV
#ifndef GL_PATH_STENCIL_FUNC_NV
#define GL_PATH_STENCIL_FUNC_NV 0x90B7
#endif //GL_PATH_STENCIL_FUNC_NV
#ifndef GL_PATH_STENCIL_REF_NV
#define GL_PATH_STENCIL_REF_NV 0x90B8
#endif //GL_PATH_STENCIL_REF_NV
#ifndef GL_PATH_STENCIL_VALUE_MASK_NV
#define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9
#endif //GL_PATH_STENCIL_VALUE_MASK_NV
#ifndef GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV
#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD
#endif //GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV
#ifndef GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV
#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE
#endif //GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV
#ifndef GL_PATH_COVER_DEPTH_FUNC_NV
#define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF
#endif //GL_PATH_COVER_DEPTH_FUNC_NV
#ifndef GL_FONT_GLYPHS_AVAILABLE_NV
#define GL_FONT_GLYPHS_AVAILABLE_NV 0x9368
#endif //GL_FONT_GLYPHS_AVAILABLE_NV
#ifndef GL_FONT_TARGET_UNAVAILABLE_NV
#define GL_FONT_TARGET_UNAVAILABLE_NV 0x9369
#endif //GL_FONT_TARGET_UNAVAILABLE_NV
#ifndef GL_FONT_UNAVAILABLE_NV
#define GL_FONT_UNAVAILABLE_NV 0x936A
#endif //GL_FONT_UNAVAILABLE_NV
#ifndef GL_FONT_UNINTELLIGIBLE_NV
#define GL_FONT_UNINTELLIGIBLE_NV 0x936B
#endif //GL_FONT_UNINTELLIGIBLE_NV
#ifndef GL_STANDARD_FONT_FORMAT_NV
#define GL_STANDARD_FONT_FORMAT_NV 0x936C
#endif //GL_STANDARD_FONT_FORMAT_NV
#ifndef GL_FRAGMENT_INPUT_NV
#define GL_FRAGMENT_INPUT_NV 0x936D
#endif //GL_FRAGMENT_INPUT_NV
#ifndef GL_ROUNDED_RECT_NV
#define GL_ROUNDED_RECT_NV 0xE8
#endif //GL_ROUNDED_RECT_NV
#ifndef GL_RELATIVE_ROUNDED_RECT_NV
#define GL_RELATIVE_ROUNDED_RECT_NV 0xE9
#endif //GL_RELATIVE_ROUNDED_RECT_NV
#ifndef GL_ROUNDED_RECT2_NV
#define GL_ROUNDED_RECT2_NV 0xEA
#endif //GL_ROUNDED_RECT2_NV
#ifndef GL_RELATIVE_ROUNDED_RECT2_NV
#define GL_RELATIVE_ROUNDED_RECT2_NV 0xEB
#endif //GL_RELATIVE_ROUNDED_RECT2_NV
#ifndef GL_ROUNDED_RECT4_NV
#define GL_ROUNDED_RECT4_NV 0xEC
#endif //GL_ROUNDED_RECT4_NV
#ifndef GL_RELATIVE_ROUNDED_RECT4_NV
#define GL_RELATIVE_ROUNDED_RECT4_NV 0xED
#endif //GL_RELATIVE_ROUNDED_RECT4_NV
#ifndef GL_ROUNDED_RECT8_NV
#define GL_ROUNDED_RECT8_NV 0xEE
#endif //GL_ROUNDED_RECT8_NV
#ifndef GL_RELATIVE_ROUNDED_RECT8_NV
#define GL_RELATIVE_ROUNDED_RECT8_NV 0xEF
#endif //GL_RELATIVE_ROUNDED_RECT8_NV
#ifndef GL_RESTART_PATH_NV
#define GL_RESTART_PATH_NV 0xF0
#endif //GL_RESTART_PATH_NV
#ifndef GL_DUP_FIRST_CUBIC_CURVE_TO_NV
#define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2
#endif //GL_DUP_FIRST_CUBIC_CURVE_TO_NV
#ifndef GL_DUP_LAST_CUBIC_CURVE_TO_NV
#define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4
#endif //GL_DUP_LAST_CUBIC_CURVE_TO_NV
#ifndef GL_RECT_NV
#define GL_RECT_NV 0xF6
#endif //GL_RECT_NV
#ifndef GL_RELATIVE_RECT_NV
#define GL_RELATIVE_RECT_NV 0xF7
#endif //GL_RELATIVE_RECT_NV
#ifndef GL_CIRCULAR_CCW_ARC_TO_NV
#define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8
#endif //GL_CIRCULAR_CCW_ARC_TO_NV
#ifndef GL_CIRCULAR_CW_ARC_TO_NV
#define GL_CIRCULAR_CW_ARC_TO_NV 0xFA
#endif //GL_CIRCULAR_CW_ARC_TO_NV
#ifndef GL_CIRCULAR_TANGENT_ARC_TO_NV
#define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC
#endif //GL_CIRCULAR_TANGENT_ARC_TO_NV
#ifndef GL_ARC_TO_NV
#define GL_ARC_TO_NV 0xFE
#endif //GL_ARC_TO_NV
#ifndef GL_RELATIVE_ARC_TO_NV
#define GL_RELATIVE_ARC_TO_NV 0xFF
#endif //GL_RELATIVE_ARC_TO_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLCOPYPATHNVPROC_HPP)(GLuint,GLuint);
static inline void CopyPathNV(GLuint resultPath1,GLuint srcPath1)
{
	static PFNGLCOPYPATHNVPROC_HPP fn=reinterpret_cast<PFNGLCOPYPATHNVPROC_HPP>(_impl::_get_proc_address("glCopyPathNV","GL_NV_path_rendering"));
	 fn(resultPath1,srcPath1);
}
typedef void (*PFNGLCOVERFILLPATHINSTANCEDNVPROC_HPP)(GLsizei,GLenum,const void *,GLuint,GLenum,GLenum,const GLfloat *);
static inline void CoverFillPathInstancedNV(GLsizei numPaths1,GLenum pathNameType1,const void * paths1,GLuint pathBase1,GLenum coverMode1,GLenum transformType1,const GLfloat * transformValues1)
{
	static PFNGLCOVERFILLPATHINSTANCEDNVPROC_HPP fn=reinterpret_cast<PFNGLCOVERFILLPATHINSTANCEDNVPROC_HPP>(_impl::_get_proc_address("glCoverFillPathInstancedNV","GL_NV_path_rendering"));
	 fn(numPaths1,pathNameType1,paths1,pathBase1,coverMode1,transformType1,transformValues1);
}
typedef void (*PFNGLCOVERFILLPATHNVPROC_HPP)(GLuint,GLenum);
static inline void CoverFillPathNV(GLuint path1,GLenum coverMode1)
{
	static PFNGLCOVERFILLPATHNVPROC_HPP fn=reinterpret_cast<PFNGLCOVERFILLPATHNVPROC_HPP>(_impl::_get_proc_address("glCoverFillPathNV","GL_NV_path_rendering"));
	 fn(path1,coverMode1);
}
typedef void (*PFNGLCOVERSTROKEPATHINSTANCEDNVPROC_HPP)(GLsizei,GLenum,const void *,GLuint,GLenum,GLenum,const GLfloat *);
static inline void CoverStrokePathInstancedNV(GLsizei numPaths1,GLenum pathNameType1,const void * paths1,GLuint pathBase1,GLenum coverMode1,GLenum transformType1,const GLfloat * transformValues1)
{
	static PFNGLCOVERSTROKEPATHINSTANCEDNVPROC_HPP fn=reinterpret_cast<PFNGLCOVERSTROKEPATHINSTANCEDNVPROC_HPP>(_impl::_get_proc_address("glCoverStrokePathInstancedNV","GL_NV_path_rendering"));
	 fn(numPaths1,pathNameType1,paths1,pathBase1,coverMode1,transformType1,transformValues1);
}
typedef void (*PFNGLCOVERSTROKEPATHNVPROC_HPP)(GLuint,GLenum);
static inline void CoverStrokePathNV(GLuint path1,GLenum coverMode1)
{
	static PFNGLCOVERSTROKEPATHNVPROC_HPP fn=reinterpret_cast<PFNGLCOVERSTROKEPATHNVPROC_HPP>(_impl::_get_proc_address("glCoverStrokePathNV","GL_NV_path_rendering"));
	 fn(path1,coverMode1);
}
typedef void (*PFNGLDELETEPATHSNVPROC_HPP)(GLuint,GLsizei);
static inline void DeletePathsNV(GLuint path1,GLsizei range1)
{
	static PFNGLDELETEPATHSNVPROC_HPP fn=reinterpret_cast<PFNGLDELETEPATHSNVPROC_HPP>(_impl::_get_proc_address("glDeletePathsNV","GL_NV_path_rendering"));
	 fn(path1,range1);
}
typedef GLuint (*PFNGLGENPATHSNVPROC_HPP)(GLsizei);
static inline GLuint GenPathsNV(GLsizei range1)
{
	static PFNGLGENPATHSNVPROC_HPP fn=reinterpret_cast<PFNGLGENPATHSNVPROC_HPP>(_impl::_get_proc_address("glGenPathsNV","GL_NV_path_rendering"));
	return fn(range1);
}
typedef void (*PFNGLGETPATHCOLORGENFVNVPROC_HPP)(GLenum,GLenum,GLfloat *);
static inline void GetPathColorGenfvNV(GLenum color1,GLenum pname1,GLfloat * value1)
{
	static PFNGLGETPATHCOLORGENFVNVPROC_HPP fn=reinterpret_cast<PFNGLGETPATHCOLORGENFVNVPROC_HPP>(_impl::_get_proc_address("glGetPathColorGenfvNV","GL_NV_path_rendering"));
	 fn(color1,pname1,value1);
}
typedef void (*PFNGLGETPATHCOLORGENIVNVPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetPathColorGenivNV(GLenum color1,GLenum pname1,GLint * value1)
{
	static PFNGLGETPATHCOLORGENIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETPATHCOLORGENIVNVPROC_HPP>(_impl::_get_proc_address("glGetPathColorGenivNV","GL_NV_path_rendering"));
	 fn(color1,pname1,value1);
}
typedef void (*PFNGLGETPATHCOMMANDSNVPROC_HPP)(GLuint,GLubyte *);
static inline void GetPathCommandsNV(GLuint path1,GLubyte * commands1)
{
	static PFNGLGETPATHCOMMANDSNVPROC_HPP fn=reinterpret_cast<PFNGLGETPATHCOMMANDSNVPROC_HPP>(_impl::_get_proc_address("glGetPathCommandsNV","GL_NV_path_rendering"));
	 fn(path1,commands1);
}
typedef void (*PFNGLGETPATHCOORDSNVPROC_HPP)(GLuint,GLfloat *);
static inline void GetPathCoordsNV(GLuint path1,GLfloat * coords1)
{
	static PFNGLGETPATHCOORDSNVPROC_HPP fn=reinterpret_cast<PFNGLGETPATHCOORDSNVPROC_HPP>(_impl::_get_proc_address("glGetPathCoordsNV","GL_NV_path_rendering"));
	 fn(path1,coords1);
}
typedef void (*PFNGLGETPATHDASHARRAYNVPROC_HPP)(GLuint,GLfloat *);
static inline void GetPathDashArrayNV(GLuint path1,GLfloat * dashArray1)
{
	static PFNGLGETPATHDASHARRAYNVPROC_HPP fn=reinterpret_cast<PFNGLGETPATHDASHARRAYNVPROC_HPP>(_impl::_get_proc_address("glGetPathDashArrayNV","GL_NV_path_rendering"));
	 fn(path1,dashArray1);
}
typedef GLfloat (*PFNGLGETPATHLENGTHNVPROC_HPP)(GLuint,GLsizei,GLsizei);
static inline GLfloat GetPathLengthNV(GLuint path1,GLsizei startSegment1,GLsizei numSegments1)
{
	static PFNGLGETPATHLENGTHNVPROC_HPP fn=reinterpret_cast<PFNGLGETPATHLENGTHNVPROC_HPP>(_impl::_get_proc_address("glGetPathLengthNV","GL_NV_path_rendering"));
	return fn(path1,startSegment1,numSegments1);
}
typedef void (*PFNGLGETPATHMETRICRANGENVPROC_HPP)(GLbitfield,GLuint,GLsizei,GLsizei,GLfloat *);
static inline void GetPathMetricRangeNV(GLbitfield metricQueryMask1,GLuint firstPathName1,GLsizei numPaths1,GLsizei stride1,GLfloat * metrics1)
{
	static PFNGLGETPATHMETRICRANGENVPROC_HPP fn=reinterpret_cast<PFNGLGETPATHMETRICRANGENVPROC_HPP>(_impl::_get_proc_address("glGetPathMetricRangeNV","GL_NV_path_rendering"));
	 fn(metricQueryMask1,firstPathName1,numPaths1,stride1,metrics1);
}
typedef void (*PFNGLGETPATHMETRICSNVPROC_HPP)(GLbitfield,GLsizei,GLenum,const void *,GLuint,GLsizei,GLfloat *);
static inline void GetPathMetricsNV(GLbitfield metricQueryMask1,GLsizei numPaths1,GLenum pathNameType1,const void * paths1,GLuint pathBase1,GLsizei stride1,GLfloat * metrics1)
{
	static PFNGLGETPATHMETRICSNVPROC_HPP fn=reinterpret_cast<PFNGLGETPATHMETRICSNVPROC_HPP>(_impl::_get_proc_address("glGetPathMetricsNV","GL_NV_path_rendering"));
	 fn(metricQueryMask1,numPaths1,pathNameType1,paths1,pathBase1,stride1,metrics1);
}
typedef void (*PFNGLGETPATHPARAMETERFVNVPROC_HPP)(GLuint,GLenum,GLfloat *);
static inline void GetPathParameterfvNV(GLuint path1,GLenum pname1,GLfloat * value1)
{
	static PFNGLGETPATHPARAMETERFVNVPROC_HPP fn=reinterpret_cast<PFNGLGETPATHPARAMETERFVNVPROC_HPP>(_impl::_get_proc_address("glGetPathParameterfvNV","GL_NV_path_rendering"));
	 fn(path1,pname1,value1);
}
typedef void (*PFNGLGETPATHPARAMETERIVNVPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetPathParameterivNV(GLuint path1,GLenum pname1,GLint * value1)
{
	static PFNGLGETPATHPARAMETERIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETPATHPARAMETERIVNVPROC_HPP>(_impl::_get_proc_address("glGetPathParameterivNV","GL_NV_path_rendering"));
	 fn(path1,pname1,value1);
}
typedef void (*PFNGLGETPATHSPACINGNVPROC_HPP)(GLenum,GLsizei,GLenum,const void *,GLuint,GLfloat,GLfloat,GLenum,GLfloat *);
static inline void GetPathSpacingNV(GLenum pathListMode1,GLsizei numPaths1,GLenum pathNameType1,const void * paths1,GLuint pathBase1,GLfloat advanceScale1,GLfloat kerningScale1,GLenum transformType1,GLfloat * returnedSpacing1)
{
	static PFNGLGETPATHSPACINGNVPROC_HPP fn=reinterpret_cast<PFNGLGETPATHSPACINGNVPROC_HPP>(_impl::_get_proc_address("glGetPathSpacingNV","GL_NV_path_rendering"));
	 fn(pathListMode1,numPaths1,pathNameType1,paths1,pathBase1,advanceScale1,kerningScale1,transformType1,returnedSpacing1);
}
typedef void (*PFNGLGETPATHTEXGENFVNVPROC_HPP)(GLenum,GLenum,GLfloat *);
static inline void GetPathTexGenfvNV(GLenum texCoordSet1,GLenum pname1,GLfloat * value1)
{
	static PFNGLGETPATHTEXGENFVNVPROC_HPP fn=reinterpret_cast<PFNGLGETPATHTEXGENFVNVPROC_HPP>(_impl::_get_proc_address("glGetPathTexGenfvNV","GL_NV_path_rendering"));
	 fn(texCoordSet1,pname1,value1);
}
typedef void (*PFNGLGETPATHTEXGENIVNVPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetPathTexGenivNV(GLenum texCoordSet1,GLenum pname1,GLint * value1)
{
	static PFNGLGETPATHTEXGENIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETPATHTEXGENIVNVPROC_HPP>(_impl::_get_proc_address("glGetPathTexGenivNV","GL_NV_path_rendering"));
	 fn(texCoordSet1,pname1,value1);
}
typedef void (*PFNGLGETPROGRAMRESOURCEFVNVPROC_HPP)(GLuint,GLenum,GLuint,GLsizei,const GLenum *,GLsizei,GLsizei *,GLfloat *);
static inline void GetProgramResourcefvNV(GLuint program1,GLenum programInterface1,GLuint index1,GLsizei propCount1,const GLenum * props1,GLsizei bufSize1,GLsizei * length1,GLfloat * params1)
{
	static PFNGLGETPROGRAMRESOURCEFVNVPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMRESOURCEFVNVPROC_HPP>(_impl::_get_proc_address("glGetProgramResourcefvNV","GL_NV_path_rendering"));
	 fn(program1,programInterface1,index1,propCount1,props1,bufSize1,length1,params1);
}
typedef void (*PFNGLINTERPOLATEPATHSNVPROC_HPP)(GLuint,GLuint,GLuint,GLfloat);
static inline void InterpolatePathsNV(GLuint resultPath1,GLuint pathA1,GLuint pathB1,GLfloat weight1)
{
	static PFNGLINTERPOLATEPATHSNVPROC_HPP fn=reinterpret_cast<PFNGLINTERPOLATEPATHSNVPROC_HPP>(_impl::_get_proc_address("glInterpolatePathsNV","GL_NV_path_rendering"));
	 fn(resultPath1,pathA1,pathB1,weight1);
}
typedef GLboolean (*PFNGLISPATHNVPROC_HPP)(GLuint);
static inline GLboolean IsPathNV(GLuint path1)
{
	static PFNGLISPATHNVPROC_HPP fn=reinterpret_cast<PFNGLISPATHNVPROC_HPP>(_impl::_get_proc_address("glIsPathNV","GL_NV_path_rendering"));
	return fn(path1);
}
typedef GLboolean (*PFNGLISPOINTINFILLPATHNVPROC_HPP)(GLuint,GLuint,GLfloat,GLfloat);
static inline GLboolean IsPointInFillPathNV(GLuint path1,GLuint mask1,GLfloat x1,GLfloat y1)
{
	static PFNGLISPOINTINFILLPATHNVPROC_HPP fn=reinterpret_cast<PFNGLISPOINTINFILLPATHNVPROC_HPP>(_impl::_get_proc_address("glIsPointInFillPathNV","GL_NV_path_rendering"));
	return fn(path1,mask1,x1,y1);
}
typedef GLboolean (*PFNGLISPOINTINSTROKEPATHNVPROC_HPP)(GLuint,GLfloat,GLfloat);
static inline GLboolean IsPointInStrokePathNV(GLuint path1,GLfloat x1,GLfloat y1)
{
	static PFNGLISPOINTINSTROKEPATHNVPROC_HPP fn=reinterpret_cast<PFNGLISPOINTINSTROKEPATHNVPROC_HPP>(_impl::_get_proc_address("glIsPointInStrokePathNV","GL_NV_path_rendering"));
	return fn(path1,x1,y1);
}
typedef void (*PFNGLMATRIXLOAD3X2FNVPROC_HPP)(GLenum,const GLfloat *);
static inline void MatrixLoad3x2fNV(GLenum matrixMode1,const GLfloat * m1)
{
	static PFNGLMATRIXLOAD3X2FNVPROC_HPP fn=reinterpret_cast<PFNGLMATRIXLOAD3X2FNVPROC_HPP>(_impl::_get_proc_address("glMatrixLoad3x2fNV","GL_NV_path_rendering"));
	 fn(matrixMode1,m1);
}
typedef void (*PFNGLMATRIXLOAD3X3FNVPROC_HPP)(GLenum,const GLfloat *);
static inline void MatrixLoad3x3fNV(GLenum matrixMode1,const GLfloat * m1)
{
	static PFNGLMATRIXLOAD3X3FNVPROC_HPP fn=reinterpret_cast<PFNGLMATRIXLOAD3X3FNVPROC_HPP>(_impl::_get_proc_address("glMatrixLoad3x3fNV","GL_NV_path_rendering"));
	 fn(matrixMode1,m1);
}
typedef void (*PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC_HPP)(GLenum,const GLfloat *);
static inline void MatrixLoadTranspose3x3fNV(GLenum matrixMode1,const GLfloat * m1)
{
	static PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC_HPP fn=reinterpret_cast<PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC_HPP>(_impl::_get_proc_address("glMatrixLoadTranspose3x3fNV","GL_NV_path_rendering"));
	 fn(matrixMode1,m1);
}
typedef void (*PFNGLMATRIXMULT3X2FNVPROC_HPP)(GLenum,const GLfloat *);
static inline void MatrixMult3x2fNV(GLenum matrixMode1,const GLfloat * m1)
{
	static PFNGLMATRIXMULT3X2FNVPROC_HPP fn=reinterpret_cast<PFNGLMATRIXMULT3X2FNVPROC_HPP>(_impl::_get_proc_address("glMatrixMult3x2fNV","GL_NV_path_rendering"));
	 fn(matrixMode1,m1);
}
typedef void (*PFNGLMATRIXMULT3X3FNVPROC_HPP)(GLenum,const GLfloat *);
static inline void MatrixMult3x3fNV(GLenum matrixMode1,const GLfloat * m1)
{
	static PFNGLMATRIXMULT3X3FNVPROC_HPP fn=reinterpret_cast<PFNGLMATRIXMULT3X3FNVPROC_HPP>(_impl::_get_proc_address("glMatrixMult3x3fNV","GL_NV_path_rendering"));
	 fn(matrixMode1,m1);
}
typedef void (*PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC_HPP)(GLenum,const GLfloat *);
static inline void MatrixMultTranspose3x3fNV(GLenum matrixMode1,const GLfloat * m1)
{
	static PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC_HPP fn=reinterpret_cast<PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC_HPP>(_impl::_get_proc_address("glMatrixMultTranspose3x3fNV","GL_NV_path_rendering"));
	 fn(matrixMode1,m1);
}
typedef void (*PFNGLPATHCOLORGENNVPROC_HPP)(GLenum,GLenum,GLenum,const GLfloat *);
static inline void PathColorGenNV(GLenum color1,GLenum genMode1,GLenum colorFormat1,const GLfloat * coeffs1)
{
	static PFNGLPATHCOLORGENNVPROC_HPP fn=reinterpret_cast<PFNGLPATHCOLORGENNVPROC_HPP>(_impl::_get_proc_address("glPathColorGenNV","GL_NV_path_rendering"));
	 fn(color1,genMode1,colorFormat1,coeffs1);
}
typedef void (*PFNGLPATHCOMMANDSNVPROC_HPP)(GLuint,GLsizei,const GLubyte *,GLsizei,GLenum,const void *);
static inline void PathCommandsNV(GLuint path1,GLsizei numCommands1,const GLubyte * commands1,GLsizei numCoords1,GLenum coordType1,const void * coords1)
{
	static PFNGLPATHCOMMANDSNVPROC_HPP fn=reinterpret_cast<PFNGLPATHCOMMANDSNVPROC_HPP>(_impl::_get_proc_address("glPathCommandsNV","GL_NV_path_rendering"));
	 fn(path1,numCommands1,commands1,numCoords1,coordType1,coords1);
}
typedef void (*PFNGLPATHCOORDSNVPROC_HPP)(GLuint,GLsizei,GLenum,const void *);
static inline void PathCoordsNV(GLuint path1,GLsizei numCoords1,GLenum coordType1,const void * coords1)
{
	static PFNGLPATHCOORDSNVPROC_HPP fn=reinterpret_cast<PFNGLPATHCOORDSNVPROC_HPP>(_impl::_get_proc_address("glPathCoordsNV","GL_NV_path_rendering"));
	 fn(path1,numCoords1,coordType1,coords1);
}
typedef void (*PFNGLPATHCOVERDEPTHFUNCNVPROC_HPP)(GLenum);
static inline void PathCoverDepthFuncNV(GLenum func1)
{
	static PFNGLPATHCOVERDEPTHFUNCNVPROC_HPP fn=reinterpret_cast<PFNGLPATHCOVERDEPTHFUNCNVPROC_HPP>(_impl::_get_proc_address("glPathCoverDepthFuncNV","GL_NV_path_rendering"));
	 fn(func1);
}
typedef void (*PFNGLPATHDASHARRAYNVPROC_HPP)(GLuint,GLsizei,const GLfloat *);
static inline void PathDashArrayNV(GLuint path1,GLsizei dashCount1,const GLfloat * dashArray1)
{
	static PFNGLPATHDASHARRAYNVPROC_HPP fn=reinterpret_cast<PFNGLPATHDASHARRAYNVPROC_HPP>(_impl::_get_proc_address("glPathDashArrayNV","GL_NV_path_rendering"));
	 fn(path1,dashCount1,dashArray1);
}
typedef void (*PFNGLPATHFOGGENNVPROC_HPP)(GLenum);
static inline void PathFogGenNV(GLenum genMode1)
{
	static PFNGLPATHFOGGENNVPROC_HPP fn=reinterpret_cast<PFNGLPATHFOGGENNVPROC_HPP>(_impl::_get_proc_address("glPathFogGenNV","GL_NV_path_rendering"));
	 fn(genMode1);
}
typedef GLenum (*PFNGLPATHGLYPHINDEXARRAYNVPROC_HPP)(GLuint,GLenum,const void *,GLbitfield,GLuint,GLsizei,GLuint,GLfloat);
static inline GLenum PathGlyphIndexArrayNV(GLuint firstPathName1,GLenum fontTarget1,const void * fontName1,GLbitfield fontStyle1,GLuint firstGlyphIndex1,GLsizei numGlyphs1,GLuint pathParameterTemplate1,GLfloat emScale1)
{
	static PFNGLPATHGLYPHINDEXARRAYNVPROC_HPP fn=reinterpret_cast<PFNGLPATHGLYPHINDEXARRAYNVPROC_HPP>(_impl::_get_proc_address("glPathGlyphIndexArrayNV","GL_NV_path_rendering"));
	return fn(firstPathName1,fontTarget1,fontName1,fontStyle1,firstGlyphIndex1,numGlyphs1,pathParameterTemplate1,emScale1);
}
typedef GLenum (*PFNGLPATHGLYPHINDEXRANGENVPROC_HPP)(GLenum,const void *,GLbitfield,GLuint,GLfloat,GLuint);
static inline GLenum PathGlyphIndexRangeNV(GLenum fontTarget1,const void * fontName1,GLbitfield fontStyle1,GLuint pathParameterTemplate1,GLfloat emScale1,GLuint baseAndCount1)
{
	static PFNGLPATHGLYPHINDEXRANGENVPROC_HPP fn=reinterpret_cast<PFNGLPATHGLYPHINDEXRANGENVPROC_HPP>(_impl::_get_proc_address("glPathGlyphIndexRangeNV","GL_NV_path_rendering"));
	return fn(fontTarget1,fontName1,fontStyle1,pathParameterTemplate1,emScale1,baseAndCount1);
}
typedef void (*PFNGLPATHGLYPHRANGENVPROC_HPP)(GLuint,GLenum,const void *,GLbitfield,GLuint,GLsizei,GLenum,GLuint,GLfloat);
static inline void PathGlyphRangeNV(GLuint firstPathName1,GLenum fontTarget1,const void * fontName1,GLbitfield fontStyle1,GLuint firstGlyph1,GLsizei numGlyphs1,GLenum handleMissingGlyphs1,GLuint pathParameterTemplate1,GLfloat emScale1)
{
	static PFNGLPATHGLYPHRANGENVPROC_HPP fn=reinterpret_cast<PFNGLPATHGLYPHRANGENVPROC_HPP>(_impl::_get_proc_address("glPathGlyphRangeNV","GL_NV_path_rendering"));
	 fn(firstPathName1,fontTarget1,fontName1,fontStyle1,firstGlyph1,numGlyphs1,handleMissingGlyphs1,pathParameterTemplate1,emScale1);
}
typedef void (*PFNGLPATHGLYPHSNVPROC_HPP)(GLuint,GLenum,const void *,GLbitfield,GLsizei,GLenum,const void *,GLenum,GLuint,GLfloat);
static inline void PathGlyphsNV(GLuint firstPathName1,GLenum fontTarget1,const void * fontName1,GLbitfield fontStyle1,GLsizei numGlyphs1,GLenum type1,const void * charcodes1,GLenum handleMissingGlyphs1,GLuint pathParameterTemplate1,GLfloat emScale1)
{
	static PFNGLPATHGLYPHSNVPROC_HPP fn=reinterpret_cast<PFNGLPATHGLYPHSNVPROC_HPP>(_impl::_get_proc_address("glPathGlyphsNV","GL_NV_path_rendering"));
	 fn(firstPathName1,fontTarget1,fontName1,fontStyle1,numGlyphs1,type1,charcodes1,handleMissingGlyphs1,pathParameterTemplate1,emScale1);
}
typedef GLenum (*PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC_HPP)(GLuint,GLenum,GLsizeiptr,const void *,GLsizei,GLuint,GLsizei,GLuint,GLfloat);
static inline GLenum PathMemoryGlyphIndexArrayNV(GLuint firstPathName1,GLenum fontTarget1,GLsizeiptr fontSize1,const void * fontData1,GLsizei faceIndex1,GLuint firstGlyphIndex1,GLsizei numGlyphs1,GLuint pathParameterTemplate1,GLfloat emScale1)
{
	static PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC_HPP fn=reinterpret_cast<PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC_HPP>(_impl::_get_proc_address("glPathMemoryGlyphIndexArrayNV","GL_NV_path_rendering"));
	return fn(firstPathName1,fontTarget1,fontSize1,fontData1,faceIndex1,firstGlyphIndex1,numGlyphs1,pathParameterTemplate1,emScale1);
}
typedef void (*PFNGLPATHPARAMETERFNVPROC_HPP)(GLuint,GLenum,GLfloat);
static inline void PathParameterfNV(GLuint path1,GLenum pname1,GLfloat value1)
{
	static PFNGLPATHPARAMETERFNVPROC_HPP fn=reinterpret_cast<PFNGLPATHPARAMETERFNVPROC_HPP>(_impl::_get_proc_address("glPathParameterfNV","GL_NV_path_rendering"));
	 fn(path1,pname1,value1);
}
typedef void (*PFNGLPATHPARAMETERFVNVPROC_HPP)(GLuint,GLenum,const GLfloat *);
static inline void PathParameterfvNV(GLuint path1,GLenum pname1,const GLfloat * value1)
{
	static PFNGLPATHPARAMETERFVNVPROC_HPP fn=reinterpret_cast<PFNGLPATHPARAMETERFVNVPROC_HPP>(_impl::_get_proc_address("glPathParameterfvNV","GL_NV_path_rendering"));
	 fn(path1,pname1,value1);
}
typedef void (*PFNGLPATHPARAMETERINVPROC_HPP)(GLuint,GLenum,GLint);
static inline void PathParameteriNV(GLuint path1,GLenum pname1,GLint value1)
{
	static PFNGLPATHPARAMETERINVPROC_HPP fn=reinterpret_cast<PFNGLPATHPARAMETERINVPROC_HPP>(_impl::_get_proc_address("glPathParameteriNV","GL_NV_path_rendering"));
	 fn(path1,pname1,value1);
}
typedef void (*PFNGLPATHPARAMETERIVNVPROC_HPP)(GLuint,GLenum,const GLint *);
static inline void PathParameterivNV(GLuint path1,GLenum pname1,const GLint * value1)
{
	static PFNGLPATHPARAMETERIVNVPROC_HPP fn=reinterpret_cast<PFNGLPATHPARAMETERIVNVPROC_HPP>(_impl::_get_proc_address("glPathParameterivNV","GL_NV_path_rendering"));
	 fn(path1,pname1,value1);
}
typedef void (*PFNGLPATHSTENCILDEPTHOFFSETNVPROC_HPP)(GLfloat,GLfloat);
static inline void PathStencilDepthOffsetNV(GLfloat factor1,GLfloat units1)
{
	static PFNGLPATHSTENCILDEPTHOFFSETNVPROC_HPP fn=reinterpret_cast<PFNGLPATHSTENCILDEPTHOFFSETNVPROC_HPP>(_impl::_get_proc_address("glPathStencilDepthOffsetNV","GL_NV_path_rendering"));
	 fn(factor1,units1);
}
typedef void (*PFNGLPATHSTENCILFUNCNVPROC_HPP)(GLenum,GLint,GLuint);
static inline void PathStencilFuncNV(GLenum func1,GLint ref1,GLuint mask1)
{
	static PFNGLPATHSTENCILFUNCNVPROC_HPP fn=reinterpret_cast<PFNGLPATHSTENCILFUNCNVPROC_HPP>(_impl::_get_proc_address("glPathStencilFuncNV","GL_NV_path_rendering"));
	 fn(func1,ref1,mask1);
}
typedef void (*PFNGLPATHSTRINGNVPROC_HPP)(GLuint,GLenum,GLsizei,const void *);
static inline void PathStringNV(GLuint path1,GLenum format1,GLsizei length1,const void * pathString1)
{
	static PFNGLPATHSTRINGNVPROC_HPP fn=reinterpret_cast<PFNGLPATHSTRINGNVPROC_HPP>(_impl::_get_proc_address("glPathStringNV","GL_NV_path_rendering"));
	 fn(path1,format1,length1,pathString1);
}
typedef void (*PFNGLPATHSUBCOMMANDSNVPROC_HPP)(GLuint,GLsizei,GLsizei,GLsizei,const GLubyte *,GLsizei,GLenum,const void *);
static inline void PathSubCommandsNV(GLuint path1,GLsizei commandStart1,GLsizei commandsToDelete1,GLsizei numCommands1,const GLubyte * commands1,GLsizei numCoords1,GLenum coordType1,const void * coords1)
{
	static PFNGLPATHSUBCOMMANDSNVPROC_HPP fn=reinterpret_cast<PFNGLPATHSUBCOMMANDSNVPROC_HPP>(_impl::_get_proc_address("glPathSubCommandsNV","GL_NV_path_rendering"));
	 fn(path1,commandStart1,commandsToDelete1,numCommands1,commands1,numCoords1,coordType1,coords1);
}
typedef void (*PFNGLPATHSUBCOORDSNVPROC_HPP)(GLuint,GLsizei,GLsizei,GLenum,const void *);
static inline void PathSubCoordsNV(GLuint path1,GLsizei coordStart1,GLsizei numCoords1,GLenum coordType1,const void * coords1)
{
	static PFNGLPATHSUBCOORDSNVPROC_HPP fn=reinterpret_cast<PFNGLPATHSUBCOORDSNVPROC_HPP>(_impl::_get_proc_address("glPathSubCoordsNV","GL_NV_path_rendering"));
	 fn(path1,coordStart1,numCoords1,coordType1,coords1);
}
typedef void (*PFNGLPATHTEXGENNVPROC_HPP)(GLenum,GLenum,GLint,const GLfloat *);
static inline void PathTexGenNV(GLenum texCoordSet1,GLenum genMode1,GLint components1,const GLfloat * coeffs1)
{
	static PFNGLPATHTEXGENNVPROC_HPP fn=reinterpret_cast<PFNGLPATHTEXGENNVPROC_HPP>(_impl::_get_proc_address("glPathTexGenNV","GL_NV_path_rendering"));
	 fn(texCoordSet1,genMode1,components1,coeffs1);
}
typedef GLboolean (*PFNGLPOINTALONGPATHNVPROC_HPP)(GLuint,GLsizei,GLsizei,GLfloat,GLfloat *,GLfloat *,GLfloat *,GLfloat *);
static inline GLboolean PointAlongPathNV(GLuint path1,GLsizei startSegment1,GLsizei numSegments1,GLfloat distance1,GLfloat * x1,GLfloat * y1,GLfloat * tangentX1,GLfloat * tangentY1)
{
	static PFNGLPOINTALONGPATHNVPROC_HPP fn=reinterpret_cast<PFNGLPOINTALONGPATHNVPROC_HPP>(_impl::_get_proc_address("glPointAlongPathNV","GL_NV_path_rendering"));
	return fn(path1,startSegment1,numSegments1,distance1,x1,y1,tangentX1,tangentY1);
}
typedef void (*PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC_HPP)(GLuint,GLint,GLenum,GLint,const GLfloat *);
static inline void ProgramPathFragmentInputGenNV(GLuint program1,GLint location1,GLenum genMode1,GLint components1,const GLfloat * coeffs1)
{
	static PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC_HPP>(_impl::_get_proc_address("glProgramPathFragmentInputGenNV","GL_NV_path_rendering"));
	 fn(program1,location1,genMode1,components1,coeffs1);
}
typedef void (*PFNGLSTENCILFILLPATHINSTANCEDNVPROC_HPP)(GLsizei,GLenum,const void *,GLuint,GLenum,GLuint,GLenum,const GLfloat *);
static inline void StencilFillPathInstancedNV(GLsizei numPaths1,GLenum pathNameType1,const void * paths1,GLuint pathBase1,GLenum fillMode1,GLuint mask1,GLenum transformType1,const GLfloat * transformValues1)
{
	static PFNGLSTENCILFILLPATHINSTANCEDNVPROC_HPP fn=reinterpret_cast<PFNGLSTENCILFILLPATHINSTANCEDNVPROC_HPP>(_impl::_get_proc_address("glStencilFillPathInstancedNV","GL_NV_path_rendering"));
	 fn(numPaths1,pathNameType1,paths1,pathBase1,fillMode1,mask1,transformType1,transformValues1);
}
typedef void (*PFNGLSTENCILFILLPATHNVPROC_HPP)(GLuint,GLenum,GLuint);
static inline void StencilFillPathNV(GLuint path1,GLenum fillMode1,GLuint mask1)
{
	static PFNGLSTENCILFILLPATHNVPROC_HPP fn=reinterpret_cast<PFNGLSTENCILFILLPATHNVPROC_HPP>(_impl::_get_proc_address("glStencilFillPathNV","GL_NV_path_rendering"));
	 fn(path1,fillMode1,mask1);
}
typedef void (*PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC_HPP)(GLsizei,GLenum,const void *,GLuint,GLint,GLuint,GLenum,const GLfloat *);
static inline void StencilStrokePathInstancedNV(GLsizei numPaths1,GLenum pathNameType1,const void * paths1,GLuint pathBase1,GLint reference1,GLuint mask1,GLenum transformType1,const GLfloat * transformValues1)
{
	static PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC_HPP fn=reinterpret_cast<PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC_HPP>(_impl::_get_proc_address("glStencilStrokePathInstancedNV","GL_NV_path_rendering"));
	 fn(numPaths1,pathNameType1,paths1,pathBase1,reference1,mask1,transformType1,transformValues1);
}
typedef void (*PFNGLSTENCILSTROKEPATHNVPROC_HPP)(GLuint,GLint,GLuint);
static inline void StencilStrokePathNV(GLuint path1,GLint reference1,GLuint mask1)
{
	static PFNGLSTENCILSTROKEPATHNVPROC_HPP fn=reinterpret_cast<PFNGLSTENCILSTROKEPATHNVPROC_HPP>(_impl::_get_proc_address("glStencilStrokePathNV","GL_NV_path_rendering"));
	 fn(path1,reference1,mask1);
}
typedef void (*PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC_HPP)(GLsizei,GLenum,const void *,GLuint,GLenum,GLuint,GLenum,GLenum,const GLfloat *);
static inline void StencilThenCoverFillPathInstancedNV(GLsizei numPaths1,GLenum pathNameType1,const void * paths1,GLuint pathBase1,GLenum fillMode1,GLuint mask1,GLenum coverMode1,GLenum transformType1,const GLfloat * transformValues1)
{
	static PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC_HPP fn=reinterpret_cast<PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC_HPP>(_impl::_get_proc_address("glStencilThenCoverFillPathInstancedNV","GL_NV_path_rendering"));
	 fn(numPaths1,pathNameType1,paths1,pathBase1,fillMode1,mask1,coverMode1,transformType1,transformValues1);
}
typedef void (*PFNGLSTENCILTHENCOVERFILLPATHNVPROC_HPP)(GLuint,GLenum,GLuint,GLenum);
static inline void StencilThenCoverFillPathNV(GLuint path1,GLenum fillMode1,GLuint mask1,GLenum coverMode1)
{
	static PFNGLSTENCILTHENCOVERFILLPATHNVPROC_HPP fn=reinterpret_cast<PFNGLSTENCILTHENCOVERFILLPATHNVPROC_HPP>(_impl::_get_proc_address("glStencilThenCoverFillPathNV","GL_NV_path_rendering"));
	 fn(path1,fillMode1,mask1,coverMode1);
}
typedef void (*PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC_HPP)(GLsizei,GLenum,const void *,GLuint,GLint,GLuint,GLenum,GLenum,const GLfloat *);
static inline void StencilThenCoverStrokePathInstancedNV(GLsizei numPaths1,GLenum pathNameType1,const void * paths1,GLuint pathBase1,GLint reference1,GLuint mask1,GLenum coverMode1,GLenum transformType1,const GLfloat * transformValues1)
{
	static PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC_HPP fn=reinterpret_cast<PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC_HPP>(_impl::_get_proc_address("glStencilThenCoverStrokePathInstancedNV","GL_NV_path_rendering"));
	 fn(numPaths1,pathNameType1,paths1,pathBase1,reference1,mask1,coverMode1,transformType1,transformValues1);
}
typedef void (*PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC_HPP)(GLuint,GLint,GLuint,GLenum);
static inline void StencilThenCoverStrokePathNV(GLuint path1,GLint reference1,GLuint mask1,GLenum coverMode1)
{
	static PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC_HPP fn=reinterpret_cast<PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC_HPP>(_impl::_get_proc_address("glStencilThenCoverStrokePathNV","GL_NV_path_rendering"));
	 fn(path1,reference1,mask1,coverMode1);
}
typedef void (*PFNGLTRANSFORMPATHNVPROC_HPP)(GLuint,GLuint,GLenum,const GLfloat *);
static inline void TransformPathNV(GLuint resultPath1,GLuint srcPath1,GLenum transformType1,const GLfloat * transformValues1)
{
	static PFNGLTRANSFORMPATHNVPROC_HPP fn=reinterpret_cast<PFNGLTRANSFORMPATHNVPROC_HPP>(_impl::_get_proc_address("glTransformPathNV","GL_NV_path_rendering"));
	 fn(resultPath1,srcPath1,transformType1,transformValues1);
}
typedef void (*PFNGLWEIGHTPATHSNVPROC_HPP)(GLuint,GLsizei,const GLuint *,const GLfloat *);
static inline void WeightPathsNV(GLuint resultPath1,GLsizei numPaths1,const GLuint * paths1,const GLfloat * weights1)
{
	static PFNGLWEIGHTPATHSNVPROC_HPP fn=reinterpret_cast<PFNGLWEIGHTPATHSNVPROC_HPP>(_impl::_get_proc_address("glWeightPathsNV","GL_NV_path_rendering"));
	 fn(resultPath1,numPaths1,paths1,weights1);
}}
#endif

#ifndef GL_NV_pixel_data_range
#define GL_NV_pixel_data_range
#ifndef GL_WRITE_PIXEL_DATA_RANGE_NV
#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878
#endif //GL_WRITE_PIXEL_DATA_RANGE_NV
#ifndef GL_READ_PIXEL_DATA_RANGE_NV
#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879
#endif //GL_READ_PIXEL_DATA_RANGE_NV
#ifndef GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV
#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A
#endif //GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV
#ifndef GL_READ_PIXEL_DATA_RANGE_LENGTH_NV
#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B
#endif //GL_READ_PIXEL_DATA_RANGE_LENGTH_NV
#ifndef GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV
#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C
#endif //GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV
#ifndef GL_READ_PIXEL_DATA_RANGE_POINTER_NV
#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D
#endif //GL_READ_PIXEL_DATA_RANGE_POINTER_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLFLUSHPIXELDATARANGENVPROC_HPP)(GLenum);
static inline void FlushPixelDataRangeNV(GLenum target1)
{
	static PFNGLFLUSHPIXELDATARANGENVPROC_HPP fn=reinterpret_cast<PFNGLFLUSHPIXELDATARANGENVPROC_HPP>(_impl::_get_proc_address("glFlushPixelDataRangeNV","GL_NV_pixel_data_range"));
	 fn(target1);
}
typedef void (*PFNGLPIXELDATARANGENVPROC_HPP)(GLenum,GLsizei,const void *);
static inline void PixelDataRangeNV(GLenum target1,GLsizei length1,const void * pointer1)
{
	static PFNGLPIXELDATARANGENVPROC_HPP fn=reinterpret_cast<PFNGLPIXELDATARANGENVPROC_HPP>(_impl::_get_proc_address("glPixelDataRangeNV","GL_NV_pixel_data_range"));
	 fn(target1,length1,pointer1);
}}
#endif

#ifndef GL_NV_point_sprite
#define GL_NV_point_sprite
#ifndef GL_POINT_SPRITE_NV
#define GL_POINT_SPRITE_NV 0x8861
#endif //GL_POINT_SPRITE_NV
#ifndef GL_COORD_REPLACE_NV
#define GL_COORD_REPLACE_NV 0x8862
#endif //GL_COORD_REPLACE_NV
#ifndef GL_POINT_SPRITE_R_MODE_NV
#define GL_POINT_SPRITE_R_MODE_NV 0x8863
#endif //GL_POINT_SPRITE_R_MODE_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLPOINTPARAMETERINVPROC_HPP)(GLenum,GLint);
static inline void PointParameteriNV(GLenum pname1,GLint param1)
{
	static PFNGLPOINTPARAMETERINVPROC_HPP fn=reinterpret_cast<PFNGLPOINTPARAMETERINVPROC_HPP>(_impl::_get_proc_address("glPointParameteriNV","GL_NV_point_sprite"));
	 fn(pname1,param1);
}
typedef void (*PFNGLPOINTPARAMETERIVNVPROC_HPP)(GLenum,const GLint *);
static inline void PointParameterivNV(GLenum pname1,const GLint * params1)
{
	static PFNGLPOINTPARAMETERIVNVPROC_HPP fn=reinterpret_cast<PFNGLPOINTPARAMETERIVNVPROC_HPP>(_impl::_get_proc_address("glPointParameterivNV","GL_NV_point_sprite"));
	 fn(pname1,params1);
}}
#endif

#ifndef GL_NV_present_video
#define GL_NV_present_video
#ifndef GL_FRAME_NV
#define GL_FRAME_NV 0x8E26
#endif //GL_FRAME_NV
#ifndef GL_FIELDS_NV
#define GL_FIELDS_NV 0x8E27
#endif //GL_FIELDS_NV
#ifndef GL_CURRENT_TIME_NV
#define GL_CURRENT_TIME_NV 0x8E28
#endif //GL_CURRENT_TIME_NV
#ifndef GL_NUM_FILL_STREAMS_NV
#define GL_NUM_FILL_STREAMS_NV 0x8E29
#endif //GL_NUM_FILL_STREAMS_NV
#ifndef GL_PRESENT_TIME_NV
#define GL_PRESENT_TIME_NV 0x8E2A
#endif //GL_PRESENT_TIME_NV
#ifndef GL_PRESENT_DURATION_NV
#define GL_PRESENT_DURATION_NV 0x8E2B
#endif //GL_PRESENT_DURATION_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETVIDEOI64VNVPROC_HPP)(GLuint,GLenum,GLint64EXT *);
static inline void GetVideoi64vNV(GLuint video_slot1,GLenum pname1,GLint64EXT * params1)
{
	static PFNGLGETVIDEOI64VNVPROC_HPP fn=reinterpret_cast<PFNGLGETVIDEOI64VNVPROC_HPP>(_impl::_get_proc_address("glGetVideoi64vNV","GL_NV_present_video"));
	 fn(video_slot1,pname1,params1);
}
typedef void (*PFNGLGETVIDEOIVNVPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetVideoivNV(GLuint video_slot1,GLenum pname1,GLint * params1)
{
	static PFNGLGETVIDEOIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETVIDEOIVNVPROC_HPP>(_impl::_get_proc_address("glGetVideoivNV","GL_NV_present_video"));
	 fn(video_slot1,pname1,params1);
}
typedef void (*PFNGLGETVIDEOUI64VNVPROC_HPP)(GLuint,GLenum,GLuint64EXT *);
static inline void GetVideoui64vNV(GLuint video_slot1,GLenum pname1,GLuint64EXT * params1)
{
	static PFNGLGETVIDEOUI64VNVPROC_HPP fn=reinterpret_cast<PFNGLGETVIDEOUI64VNVPROC_HPP>(_impl::_get_proc_address("glGetVideoui64vNV","GL_NV_present_video"));
	 fn(video_slot1,pname1,params1);
}
typedef void (*PFNGLGETVIDEOUIVNVPROC_HPP)(GLuint,GLenum,GLuint *);
static inline void GetVideouivNV(GLuint video_slot1,GLenum pname1,GLuint * params1)
{
	static PFNGLGETVIDEOUIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETVIDEOUIVNVPROC_HPP>(_impl::_get_proc_address("glGetVideouivNV","GL_NV_present_video"));
	 fn(video_slot1,pname1,params1);
}
typedef void (*PFNGLPRESENTFRAMEDUALFILLNVPROC_HPP)(GLuint,GLuint64EXT,GLuint,GLuint,GLenum,GLenum,GLuint,GLenum,GLuint,GLenum,GLuint,GLenum,GLuint);
static inline void PresentFrameDualFillNV(GLuint video_slot1,GLuint64EXT minPresentTime1,GLuint beginPresentTimeId1,GLuint presentDurationId1,GLenum type1,GLenum target01,GLuint fill01,GLenum target11,GLuint fill11,GLenum target21,GLuint fill21,GLenum target31,GLuint fill31)
{
	static PFNGLPRESENTFRAMEDUALFILLNVPROC_HPP fn=reinterpret_cast<PFNGLPRESENTFRAMEDUALFILLNVPROC_HPP>(_impl::_get_proc_address("glPresentFrameDualFillNV","GL_NV_present_video"));
	 fn(video_slot1,minPresentTime1,beginPresentTimeId1,presentDurationId1,type1,target01,fill01,target11,fill11,target21,fill21,target31,fill31);
}
typedef void (*PFNGLPRESENTFRAMEKEYEDNVPROC_HPP)(GLuint,GLuint64EXT,GLuint,GLuint,GLenum,GLenum,GLuint,GLuint,GLenum,GLuint,GLuint);
static inline void PresentFrameKeyedNV(GLuint video_slot1,GLuint64EXT minPresentTime1,GLuint beginPresentTimeId1,GLuint presentDurationId1,GLenum type1,GLenum target01,GLuint fill01,GLuint key01,GLenum target11,GLuint fill11,GLuint key11)
{
	static PFNGLPRESENTFRAMEKEYEDNVPROC_HPP fn=reinterpret_cast<PFNGLPRESENTFRAMEKEYEDNVPROC_HPP>(_impl::_get_proc_address("glPresentFrameKeyedNV","GL_NV_present_video"));
	 fn(video_slot1,minPresentTime1,beginPresentTimeId1,presentDurationId1,type1,target01,fill01,key01,target11,fill11,key11);
}}
#endif

#ifndef GL_NV_primitive_restart
#define GL_NV_primitive_restart
#ifndef GL_PRIMITIVE_RESTART_NV
#define GL_PRIMITIVE_RESTART_NV 0x8558
#endif //GL_PRIMITIVE_RESTART_NV
#ifndef GL_PRIMITIVE_RESTART_INDEX_NV
#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559
#endif //GL_PRIMITIVE_RESTART_INDEX_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLPRIMITIVERESTARTINDEXNVPROC_HPP)(GLuint);
static inline void PrimitiveRestartIndexNV(GLuint index1)
{
	static PFNGLPRIMITIVERESTARTINDEXNVPROC_HPP fn=reinterpret_cast<PFNGLPRIMITIVERESTARTINDEXNVPROC_HPP>(_impl::_get_proc_address("glPrimitiveRestartIndexNV","GL_NV_primitive_restart"));
	 fn(index1);
}
typedef void (*PFNGLPRIMITIVERESTARTNVPROC_HPP)();
static inline void PrimitiveRestartNV()
{
	static PFNGLPRIMITIVERESTARTNVPROC_HPP fn=reinterpret_cast<PFNGLPRIMITIVERESTARTNVPROC_HPP>(_impl::_get_proc_address("glPrimitiveRestartNV","GL_NV_primitive_restart"));
	 fn();
}}
#endif

#ifndef GL_NV_register_combiners
#define GL_NV_register_combiners
#ifndef GL_NONE
#define GL_NONE 0
#endif //GL_NONE
#ifndef GL_ZERO
#define GL_ZERO 0
#endif //GL_ZERO
#ifndef GL_FOG
#define GL_FOG 0x0B60
#endif //GL_FOG
#ifndef GL_TEXTURE0_ARB
#define GL_TEXTURE0_ARB 0x84C0
#endif //GL_TEXTURE0_ARB
#ifndef GL_TEXTURE1_ARB
#define GL_TEXTURE1_ARB 0x84C1
#endif //GL_TEXTURE1_ARB
#ifndef GL_REGISTER_COMBINERS_NV
#define GL_REGISTER_COMBINERS_NV 0x8522
#endif //GL_REGISTER_COMBINERS_NV
#ifndef GL_VARIABLE_A_NV
#define GL_VARIABLE_A_NV 0x8523
#endif //GL_VARIABLE_A_NV
#ifndef GL_VARIABLE_B_NV
#define GL_VARIABLE_B_NV 0x8524
#endif //GL_VARIABLE_B_NV
#ifndef GL_VARIABLE_C_NV
#define GL_VARIABLE_C_NV 0x8525
#endif //GL_VARIABLE_C_NV
#ifndef GL_VARIABLE_D_NV
#define GL_VARIABLE_D_NV 0x8526
#endif //GL_VARIABLE_D_NV
#ifndef GL_VARIABLE_E_NV
#define GL_VARIABLE_E_NV 0x8527
#endif //GL_VARIABLE_E_NV
#ifndef GL_VARIABLE_F_NV
#define GL_VARIABLE_F_NV 0x8528
#endif //GL_VARIABLE_F_NV
#ifndef GL_VARIABLE_G_NV
#define GL_VARIABLE_G_NV 0x8529
#endif //GL_VARIABLE_G_NV
#ifndef GL_CONSTANT_COLOR0_NV
#define GL_CONSTANT_COLOR0_NV 0x852A
#endif //GL_CONSTANT_COLOR0_NV
#ifndef GL_CONSTANT_COLOR1_NV
#define GL_CONSTANT_COLOR1_NV 0x852B
#endif //GL_CONSTANT_COLOR1_NV
#ifndef GL_PRIMARY_COLOR_NV
#define GL_PRIMARY_COLOR_NV 0x852C
#endif //GL_PRIMARY_COLOR_NV
#ifndef GL_SECONDARY_COLOR_NV
#define GL_SECONDARY_COLOR_NV 0x852D
#endif //GL_SECONDARY_COLOR_NV
#ifndef GL_SPARE0_NV
#define GL_SPARE0_NV 0x852E
#endif //GL_SPARE0_NV
#ifndef GL_SPARE1_NV
#define GL_SPARE1_NV 0x852F
#endif //GL_SPARE1_NV
#ifndef GL_DISCARD_NV
#define GL_DISCARD_NV 0x8530
#endif //GL_DISCARD_NV
#ifndef GL_E_TIMES_F_NV
#define GL_E_TIMES_F_NV 0x8531
#endif //GL_E_TIMES_F_NV
#ifndef GL_SPARE0_PLUS_SECONDARY_COLOR_NV
#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532
#endif //GL_SPARE0_PLUS_SECONDARY_COLOR_NV
#ifndef GL_UNSIGNED_IDENTITY_NV
#define GL_UNSIGNED_IDENTITY_NV 0x8536
#endif //GL_UNSIGNED_IDENTITY_NV
#ifndef GL_UNSIGNED_INVERT_NV
#define GL_UNSIGNED_INVERT_NV 0x8537
#endif //GL_UNSIGNED_INVERT_NV
#ifndef GL_EXPAND_NORMAL_NV
#define GL_EXPAND_NORMAL_NV 0x8538
#endif //GL_EXPAND_NORMAL_NV
#ifndef GL_EXPAND_NEGATE_NV
#define GL_EXPAND_NEGATE_NV 0x8539
#endif //GL_EXPAND_NEGATE_NV
#ifndef GL_HALF_BIAS_NORMAL_NV
#define GL_HALF_BIAS_NORMAL_NV 0x853A
#endif //GL_HALF_BIAS_NORMAL_NV
#ifndef GL_HALF_BIAS_NEGATE_NV
#define GL_HALF_BIAS_NEGATE_NV 0x853B
#endif //GL_HALF_BIAS_NEGATE_NV
#ifndef GL_SIGNED_IDENTITY_NV
#define GL_SIGNED_IDENTITY_NV 0x853C
#endif //GL_SIGNED_IDENTITY_NV
#ifndef GL_SIGNED_NEGATE_NV
#define GL_SIGNED_NEGATE_NV 0x853D
#endif //GL_SIGNED_NEGATE_NV
#ifndef GL_SCALE_BY_TWO_NV
#define GL_SCALE_BY_TWO_NV 0x853E
#endif //GL_SCALE_BY_TWO_NV
#ifndef GL_SCALE_BY_FOUR_NV
#define GL_SCALE_BY_FOUR_NV 0x853F
#endif //GL_SCALE_BY_FOUR_NV
#ifndef GL_SCALE_BY_ONE_HALF_NV
#define GL_SCALE_BY_ONE_HALF_NV 0x8540
#endif //GL_SCALE_BY_ONE_HALF_NV
#ifndef GL_BIAS_BY_NEGATIVE_ONE_HALF_NV
#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541
#endif //GL_BIAS_BY_NEGATIVE_ONE_HALF_NV
#ifndef GL_COMBINER_INPUT_NV
#define GL_COMBINER_INPUT_NV 0x8542
#endif //GL_COMBINER_INPUT_NV
#ifndef GL_COMBINER_MAPPING_NV
#define GL_COMBINER_MAPPING_NV 0x8543
#endif //GL_COMBINER_MAPPING_NV
#ifndef GL_COMBINER_COMPONENT_USAGE_NV
#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544
#endif //GL_COMBINER_COMPONENT_USAGE_NV
#ifndef GL_COMBINER_AB_DOT_PRODUCT_NV
#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545
#endif //GL_COMBINER_AB_DOT_PRODUCT_NV
#ifndef GL_COMBINER_CD_DOT_PRODUCT_NV
#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546
#endif //GL_COMBINER_CD_DOT_PRODUCT_NV
#ifndef GL_COMBINER_MUX_SUM_NV
#define GL_COMBINER_MUX_SUM_NV 0x8547
#endif //GL_COMBINER_MUX_SUM_NV
#ifndef GL_COMBINER_SCALE_NV
#define GL_COMBINER_SCALE_NV 0x8548
#endif //GL_COMBINER_SCALE_NV
#ifndef GL_COMBINER_BIAS_NV
#define GL_COMBINER_BIAS_NV 0x8549
#endif //GL_COMBINER_BIAS_NV
#ifndef GL_COMBINER_AB_OUTPUT_NV
#define GL_COMBINER_AB_OUTPUT_NV 0x854A
#endif //GL_COMBINER_AB_OUTPUT_NV
#ifndef GL_COMBINER_CD_OUTPUT_NV
#define GL_COMBINER_CD_OUTPUT_NV 0x854B
#endif //GL_COMBINER_CD_OUTPUT_NV
#ifndef GL_COMBINER_SUM_OUTPUT_NV
#define GL_COMBINER_SUM_OUTPUT_NV 0x854C
#endif //GL_COMBINER_SUM_OUTPUT_NV
#ifndef GL_MAX_GENERAL_COMBINERS_NV
#define GL_MAX_GENERAL_COMBINERS_NV 0x854D
#endif //GL_MAX_GENERAL_COMBINERS_NV
#ifndef GL_NUM_GENERAL_COMBINERS_NV
#define GL_NUM_GENERAL_COMBINERS_NV 0x854E
#endif //GL_NUM_GENERAL_COMBINERS_NV
#ifndef GL_COLOR_SUM_CLAMP_NV
#define GL_COLOR_SUM_CLAMP_NV 0x854F
#endif //GL_COLOR_SUM_CLAMP_NV
#ifndef GL_COMBINER0_NV
#define GL_COMBINER0_NV 0x8550
#endif //GL_COMBINER0_NV
#ifndef GL_COMBINER1_NV
#define GL_COMBINER1_NV 0x8551
#endif //GL_COMBINER1_NV
#ifndef GL_COMBINER2_NV
#define GL_COMBINER2_NV 0x8552
#endif //GL_COMBINER2_NV
#ifndef GL_COMBINER3_NV
#define GL_COMBINER3_NV 0x8553
#endif //GL_COMBINER3_NV
#ifndef GL_COMBINER4_NV
#define GL_COMBINER4_NV 0x8554
#endif //GL_COMBINER4_NV
#ifndef GL_COMBINER5_NV
#define GL_COMBINER5_NV 0x8555
#endif //GL_COMBINER5_NV
#ifndef GL_COMBINER6_NV
#define GL_COMBINER6_NV 0x8556
#endif //GL_COMBINER6_NV
#ifndef GL_COMBINER7_NV
#define GL_COMBINER7_NV 0x8557
#endif //GL_COMBINER7_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLCOMBINERINPUTNVPROC_HPP)(GLenum,GLenum,GLenum,GLenum,GLenum,GLenum);
static inline void CombinerInputNV(GLenum stage1,GLenum portion1,GLenum variable1,GLenum input1,GLenum mapping1,GLenum componentUsage1)
{
	static PFNGLCOMBINERINPUTNVPROC_HPP fn=reinterpret_cast<PFNGLCOMBINERINPUTNVPROC_HPP>(_impl::_get_proc_address("glCombinerInputNV","GL_NV_register_combiners"));
	 fn(stage1,portion1,variable1,input1,mapping1,componentUsage1);
}
typedef void (*PFNGLCOMBINEROUTPUTNVPROC_HPP)(GLenum,GLenum,GLenum,GLenum,GLenum,GLenum,GLenum,GLboolean,GLboolean,GLboolean);
static inline void CombinerOutputNV(GLenum stage1,GLenum portion1,GLenum abOutput1,GLenum cdOutput1,GLenum sumOutput1,GLenum scale1,GLenum bias1,GLboolean abDotProduct1,GLboolean cdDotProduct1,GLboolean muxSum1)
{
	static PFNGLCOMBINEROUTPUTNVPROC_HPP fn=reinterpret_cast<PFNGLCOMBINEROUTPUTNVPROC_HPP>(_impl::_get_proc_address("glCombinerOutputNV","GL_NV_register_combiners"));
	 fn(stage1,portion1,abOutput1,cdOutput1,sumOutput1,scale1,bias1,abDotProduct1,cdDotProduct1,muxSum1);
}
typedef void (*PFNGLCOMBINERPARAMETERFNVPROC_HPP)(GLenum,GLfloat);
static inline void CombinerParameterfNV(GLenum pname1,GLfloat param1)
{
	static PFNGLCOMBINERPARAMETERFNVPROC_HPP fn=reinterpret_cast<PFNGLCOMBINERPARAMETERFNVPROC_HPP>(_impl::_get_proc_address("glCombinerParameterfNV","GL_NV_register_combiners"));
	 fn(pname1,param1);
}
typedef void (*PFNGLCOMBINERPARAMETERFVNVPROC_HPP)(GLenum,const GLfloat *);
static inline void CombinerParameterfvNV(GLenum pname1,const GLfloat * params1)
{
	static PFNGLCOMBINERPARAMETERFVNVPROC_HPP fn=reinterpret_cast<PFNGLCOMBINERPARAMETERFVNVPROC_HPP>(_impl::_get_proc_address("glCombinerParameterfvNV","GL_NV_register_combiners"));
	 fn(pname1,params1);
}
typedef void (*PFNGLCOMBINERPARAMETERINVPROC_HPP)(GLenum,GLint);
static inline void CombinerParameteriNV(GLenum pname1,GLint param1)
{
	static PFNGLCOMBINERPARAMETERINVPROC_HPP fn=reinterpret_cast<PFNGLCOMBINERPARAMETERINVPROC_HPP>(_impl::_get_proc_address("glCombinerParameteriNV","GL_NV_register_combiners"));
	 fn(pname1,param1);
}
typedef void (*PFNGLCOMBINERPARAMETERIVNVPROC_HPP)(GLenum,const GLint *);
static inline void CombinerParameterivNV(GLenum pname1,const GLint * params1)
{
	static PFNGLCOMBINERPARAMETERIVNVPROC_HPP fn=reinterpret_cast<PFNGLCOMBINERPARAMETERIVNVPROC_HPP>(_impl::_get_proc_address("glCombinerParameterivNV","GL_NV_register_combiners"));
	 fn(pname1,params1);
}
typedef void (*PFNGLFINALCOMBINERINPUTNVPROC_HPP)(GLenum,GLenum,GLenum,GLenum);
static inline void FinalCombinerInputNV(GLenum variable1,GLenum input1,GLenum mapping1,GLenum componentUsage1)
{
	static PFNGLFINALCOMBINERINPUTNVPROC_HPP fn=reinterpret_cast<PFNGLFINALCOMBINERINPUTNVPROC_HPP>(_impl::_get_proc_address("glFinalCombinerInputNV","GL_NV_register_combiners"));
	 fn(variable1,input1,mapping1,componentUsage1);
}
typedef void (*PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC_HPP)(GLenum,GLenum,GLenum,GLenum,GLfloat *);
static inline void GetCombinerInputParameterfvNV(GLenum stage1,GLenum portion1,GLenum variable1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC_HPP fn=reinterpret_cast<PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC_HPP>(_impl::_get_proc_address("glGetCombinerInputParameterfvNV","GL_NV_register_combiners"));
	 fn(stage1,portion1,variable1,pname1,params1);
}
typedef void (*PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC_HPP)(GLenum,GLenum,GLenum,GLenum,GLint *);
static inline void GetCombinerInputParameterivNV(GLenum stage1,GLenum portion1,GLenum variable1,GLenum pname1,GLint * params1)
{
	static PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC_HPP>(_impl::_get_proc_address("glGetCombinerInputParameterivNV","GL_NV_register_combiners"));
	 fn(stage1,portion1,variable1,pname1,params1);
}
typedef void (*PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC_HPP)(GLenum,GLenum,GLenum,GLfloat *);
static inline void GetCombinerOutputParameterfvNV(GLenum stage1,GLenum portion1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC_HPP fn=reinterpret_cast<PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC_HPP>(_impl::_get_proc_address("glGetCombinerOutputParameterfvNV","GL_NV_register_combiners"));
	 fn(stage1,portion1,pname1,params1);
}
typedef void (*PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC_HPP)(GLenum,GLenum,GLenum,GLint *);
static inline void GetCombinerOutputParameterivNV(GLenum stage1,GLenum portion1,GLenum pname1,GLint * params1)
{
	static PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC_HPP>(_impl::_get_proc_address("glGetCombinerOutputParameterivNV","GL_NV_register_combiners"));
	 fn(stage1,portion1,pname1,params1);
}
typedef void (*PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC_HPP)(GLenum,GLenum,GLfloat *);
static inline void GetFinalCombinerInputParameterfvNV(GLenum variable1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC_HPP fn=reinterpret_cast<PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC_HPP>(_impl::_get_proc_address("glGetFinalCombinerInputParameterfvNV","GL_NV_register_combiners"));
	 fn(variable1,pname1,params1);
}
typedef void (*PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetFinalCombinerInputParameterivNV(GLenum variable1,GLenum pname1,GLint * params1)
{
	static PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC_HPP>(_impl::_get_proc_address("glGetFinalCombinerInputParameterivNV","GL_NV_register_combiners"));
	 fn(variable1,pname1,params1);
}}
#endif

#ifndef GL_NV_register_combiners2
#define GL_NV_register_combiners2
#ifndef GL_PER_STAGE_CONSTANTS_NV
#define GL_PER_STAGE_CONSTANTS_NV 0x8535
#endif //GL_PER_STAGE_CONSTANTS_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLCOMBINERSTAGEPARAMETERFVNVPROC_HPP)(GLenum,GLenum,const GLfloat *);
static inline void CombinerStageParameterfvNV(GLenum stage1,GLenum pname1,const GLfloat * params1)
{
	static PFNGLCOMBINERSTAGEPARAMETERFVNVPROC_HPP fn=reinterpret_cast<PFNGLCOMBINERSTAGEPARAMETERFVNVPROC_HPP>(_impl::_get_proc_address("glCombinerStageParameterfvNV","GL_NV_register_combiners2"));
	 fn(stage1,pname1,params1);
}
typedef void (*PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC_HPP)(GLenum,GLenum,GLfloat *);
static inline void GetCombinerStageParameterfvNV(GLenum stage1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC_HPP fn=reinterpret_cast<PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC_HPP>(_impl::_get_proc_address("glGetCombinerStageParameterfvNV","GL_NV_register_combiners2"));
	 fn(stage1,pname1,params1);
}}
#endif

#ifndef GL_NV_shader_atomic_counters
#define GL_NV_shader_atomic_counters
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_shader_atomic_float
#define GL_NV_shader_atomic_float
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_shader_atomic_int64
#define GL_NV_shader_atomic_int64
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_shader_buffer_load
#define GL_NV_shader_buffer_load
#ifndef GL_BUFFER_GPU_ADDRESS_NV
#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D
#endif //GL_BUFFER_GPU_ADDRESS_NV
#ifndef GL_GPU_ADDRESS_NV
#define GL_GPU_ADDRESS_NV 0x8F34
#endif //GL_GPU_ADDRESS_NV
#ifndef GL_MAX_SHADER_BUFFER_ADDRESS_NV
#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35
#endif //GL_MAX_SHADER_BUFFER_ADDRESS_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETBUFFERPARAMETERUI64VNVPROC_HPP)(GLenum,GLenum,GLuint64EXT *);
static inline void GetBufferParameterui64vNV(GLenum target1,GLenum pname1,GLuint64EXT * params1)
{
	static PFNGLGETBUFFERPARAMETERUI64VNVPROC_HPP fn=reinterpret_cast<PFNGLGETBUFFERPARAMETERUI64VNVPROC_HPP>(_impl::_get_proc_address("glGetBufferParameterui64vNV","GL_NV_shader_buffer_load"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETINTEGERUI64VNVPROC_HPP)(GLenum,GLuint64EXT *);
static inline void GetIntegerui64vNV(GLenum value1,GLuint64EXT * result1)
{
	static PFNGLGETINTEGERUI64VNVPROC_HPP fn=reinterpret_cast<PFNGLGETINTEGERUI64VNVPROC_HPP>(_impl::_get_proc_address("glGetIntegerui64vNV","GL_NV_shader_buffer_load"));
	 fn(value1,result1);
}
typedef void (*PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC_HPP)(GLuint,GLenum,GLuint64EXT *);
static inline void GetNamedBufferParameterui64vNV(GLuint buffer1,GLenum pname1,GLuint64EXT * params1)
{
	static PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC_HPP fn=reinterpret_cast<PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC_HPP>(_impl::_get_proc_address("glGetNamedBufferParameterui64vNV","GL_NV_shader_buffer_load"));
	 fn(buffer1,pname1,params1);
}
typedef void (*PFNGLGETUNIFORMUI64VNVPROC_HPP)(GLuint,GLint,GLuint64EXT *);
static inline void GetUniformui64vNV(GLuint program1,GLint location1,GLuint64EXT * params1)
{
	static PFNGLGETUNIFORMUI64VNVPROC_HPP fn=reinterpret_cast<PFNGLGETUNIFORMUI64VNVPROC_HPP>(_impl::_get_proc_address("glGetUniformui64vNV","GL_NV_shader_buffer_load"));
	 fn(program1,location1,params1);
}
typedef GLboolean (*PFNGLISBUFFERRESIDENTNVPROC_HPP)(GLenum);
static inline GLboolean IsBufferResidentNV(GLenum target1)
{
	static PFNGLISBUFFERRESIDENTNVPROC_HPP fn=reinterpret_cast<PFNGLISBUFFERRESIDENTNVPROC_HPP>(_impl::_get_proc_address("glIsBufferResidentNV","GL_NV_shader_buffer_load"));
	return fn(target1);
}
typedef GLboolean (*PFNGLISNAMEDBUFFERRESIDENTNVPROC_HPP)(GLuint);
static inline GLboolean IsNamedBufferResidentNV(GLuint buffer1)
{
	static PFNGLISNAMEDBUFFERRESIDENTNVPROC_HPP fn=reinterpret_cast<PFNGLISNAMEDBUFFERRESIDENTNVPROC_HPP>(_impl::_get_proc_address("glIsNamedBufferResidentNV","GL_NV_shader_buffer_load"));
	return fn(buffer1);
}
typedef void (*PFNGLMAKEBUFFERNONRESIDENTNVPROC_HPP)(GLenum);
static inline void MakeBufferNonResidentNV(GLenum target1)
{
	static PFNGLMAKEBUFFERNONRESIDENTNVPROC_HPP fn=reinterpret_cast<PFNGLMAKEBUFFERNONRESIDENTNVPROC_HPP>(_impl::_get_proc_address("glMakeBufferNonResidentNV","GL_NV_shader_buffer_load"));
	 fn(target1);
}
typedef void (*PFNGLMAKEBUFFERRESIDENTNVPROC_HPP)(GLenum,GLenum);
static inline void MakeBufferResidentNV(GLenum target1,GLenum access1)
{
	static PFNGLMAKEBUFFERRESIDENTNVPROC_HPP fn=reinterpret_cast<PFNGLMAKEBUFFERRESIDENTNVPROC_HPP>(_impl::_get_proc_address("glMakeBufferResidentNV","GL_NV_shader_buffer_load"));
	 fn(target1,access1);
}
typedef void (*PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC_HPP)(GLuint);
static inline void MakeNamedBufferNonResidentNV(GLuint buffer1)
{
	static PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC_HPP fn=reinterpret_cast<PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC_HPP>(_impl::_get_proc_address("glMakeNamedBufferNonResidentNV","GL_NV_shader_buffer_load"));
	 fn(buffer1);
}
typedef void (*PFNGLMAKENAMEDBUFFERRESIDENTNVPROC_HPP)(GLuint,GLenum);
static inline void MakeNamedBufferResidentNV(GLuint buffer1,GLenum access1)
{
	static PFNGLMAKENAMEDBUFFERRESIDENTNVPROC_HPP fn=reinterpret_cast<PFNGLMAKENAMEDBUFFERRESIDENTNVPROC_HPP>(_impl::_get_proc_address("glMakeNamedBufferResidentNV","GL_NV_shader_buffer_load"));
	 fn(buffer1,access1);
}
typedef void (*PFNGLPROGRAMUNIFORMUI64NVPROC_HPP)(GLuint,GLint,GLuint64EXT);
static inline void ProgramUniformui64NV(GLuint program1,GLint location1,GLuint64EXT value1)
{
	static PFNGLPROGRAMUNIFORMUI64NVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMUI64NVPROC_HPP>(_impl::_get_proc_address("glProgramUniformui64NV","GL_NV_shader_buffer_load"));
	 fn(program1,location1,value1);
}
typedef void (*PFNGLPROGRAMUNIFORMUI64VNVPROC_HPP)(GLuint,GLint,GLsizei,const GLuint64EXT *);
static inline void ProgramUniformui64vNV(GLuint program1,GLint location1,GLsizei count1,const GLuint64EXT * value1)
{
	static PFNGLPROGRAMUNIFORMUI64VNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMUNIFORMUI64VNVPROC_HPP>(_impl::_get_proc_address("glProgramUniformui64vNV","GL_NV_shader_buffer_load"));
	 fn(program1,location1,count1,value1);
}
typedef void (*PFNGLUNIFORMUI64NVPROC_HPP)(GLint,GLuint64EXT);
static inline void Uniformui64NV(GLint location1,GLuint64EXT value1)
{
	static PFNGLUNIFORMUI64NVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMUI64NVPROC_HPP>(_impl::_get_proc_address("glUniformui64NV","GL_NV_shader_buffer_load"));
	 fn(location1,value1);
}
typedef void (*PFNGLUNIFORMUI64VNVPROC_HPP)(GLint,GLsizei,const GLuint64EXT *);
static inline void Uniformui64vNV(GLint location1,GLsizei count1,const GLuint64EXT * value1)
{
	static PFNGLUNIFORMUI64VNVPROC_HPP fn=reinterpret_cast<PFNGLUNIFORMUI64VNVPROC_HPP>(_impl::_get_proc_address("glUniformui64vNV","GL_NV_shader_buffer_load"));
	 fn(location1,count1,value1);
}}
#endif

#ifndef GL_NV_shader_buffer_store
#define GL_NV_shader_buffer_store
#ifndef GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV
#define GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV 0x00000010
#endif //GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV
#ifndef GL_WRITE_ONLY
#define GL_WRITE_ONLY 0x88B9
#endif //GL_WRITE_ONLY
#ifndef GL_READ_WRITE
#define GL_READ_WRITE 0x88BA
#endif //GL_READ_WRITE
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_shader_storage_buffer_object
#define GL_NV_shader_storage_buffer_object
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_shader_thread_group
#define GL_NV_shader_thread_group
#ifndef GL_WARP_SIZE_NV
#define GL_WARP_SIZE_NV 0x9339
#endif //GL_WARP_SIZE_NV
#ifndef GL_WARPS_PER_SM_NV
#define GL_WARPS_PER_SM_NV 0x933A
#endif //GL_WARPS_PER_SM_NV
#ifndef GL_SM_COUNT_NV
#define GL_SM_COUNT_NV 0x933B
#endif //GL_SM_COUNT_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_shader_thread_shuffle
#define GL_NV_shader_thread_shuffle
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_tessellation_program5
#define GL_NV_tessellation_program5
#ifndef GL_MAX_PROGRAM_PATCH_ATTRIBS_NV
#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8
#endif //GL_MAX_PROGRAM_PATCH_ATTRIBS_NV
#ifndef GL_TESS_CONTROL_PROGRAM_NV
#define GL_TESS_CONTROL_PROGRAM_NV 0x891E
#endif //GL_TESS_CONTROL_PROGRAM_NV
#ifndef GL_TESS_EVALUATION_PROGRAM_NV
#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F
#endif //GL_TESS_EVALUATION_PROGRAM_NV
#ifndef GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV
#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74
#endif //GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV
#ifndef GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV
#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75
#endif //GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_texgen_emboss
#define GL_NV_texgen_emboss
#ifndef GL_EMBOSS_LIGHT_NV
#define GL_EMBOSS_LIGHT_NV 0x855D
#endif //GL_EMBOSS_LIGHT_NV
#ifndef GL_EMBOSS_CONSTANT_NV
#define GL_EMBOSS_CONSTANT_NV 0x855E
#endif //GL_EMBOSS_CONSTANT_NV
#ifndef GL_EMBOSS_MAP_NV
#define GL_EMBOSS_MAP_NV 0x855F
#endif //GL_EMBOSS_MAP_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_texgen_reflection
#define GL_NV_texgen_reflection
#ifndef GL_NORMAL_MAP_NV
#define GL_NORMAL_MAP_NV 0x8511
#endif //GL_NORMAL_MAP_NV
#ifndef GL_REFLECTION_MAP_NV
#define GL_REFLECTION_MAP_NV 0x8512
#endif //GL_REFLECTION_MAP_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_texture_barrier
#define GL_NV_texture_barrier
extern "C" {
}
namespace gl{

typedef void (*PFNGLTEXTUREBARRIERNVPROC_HPP)();
static inline void TextureBarrierNV()
{
	static PFNGLTEXTUREBARRIERNVPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREBARRIERNVPROC_HPP>(_impl::_get_proc_address("glTextureBarrierNV","GL_NV_texture_barrier"));
	 fn();
}}
#endif

#ifndef GL_NV_texture_compression_vtc
#define GL_NV_texture_compression_vtc
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_texture_env_combine4
#define GL_NV_texture_env_combine4
#ifndef GL_COMBINE4_NV
#define GL_COMBINE4_NV 0x8503
#endif //GL_COMBINE4_NV
#ifndef GL_SOURCE3_RGB_NV
#define GL_SOURCE3_RGB_NV 0x8583
#endif //GL_SOURCE3_RGB_NV
#ifndef GL_SOURCE3_ALPHA_NV
#define GL_SOURCE3_ALPHA_NV 0x858B
#endif //GL_SOURCE3_ALPHA_NV
#ifndef GL_OPERAND3_RGB_NV
#define GL_OPERAND3_RGB_NV 0x8593
#endif //GL_OPERAND3_RGB_NV
#ifndef GL_OPERAND3_ALPHA_NV
#define GL_OPERAND3_ALPHA_NV 0x859B
#endif //GL_OPERAND3_ALPHA_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_texture_expand_normal
#define GL_NV_texture_expand_normal
#ifndef GL_TEXTURE_UNSIGNED_REMAP_MODE_NV
#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F
#endif //GL_TEXTURE_UNSIGNED_REMAP_MODE_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_texture_multisample
#define GL_NV_texture_multisample
#ifndef GL_TEXTURE_COVERAGE_SAMPLES_NV
#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045
#endif //GL_TEXTURE_COVERAGE_SAMPLES_NV
#ifndef GL_TEXTURE_COLOR_SAMPLES_NV
#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046
#endif //GL_TEXTURE_COLOR_SAMPLES_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC_HPP)(GLenum,GLsizei,GLsizei,GLint,GLsizei,GLsizei,GLboolean);
static inline void TexImage2DMultisampleCoverageNV(GLenum target1,GLsizei coverageSamples1,GLsizei colorSamples1,GLint internalFormat1,GLsizei width1,GLsizei height1,GLboolean fixedSampleLocations1)
{
	static PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC_HPP fn=reinterpret_cast<PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC_HPP>(_impl::_get_proc_address("glTexImage2DMultisampleCoverageNV","GL_NV_texture_multisample"));
	 fn(target1,coverageSamples1,colorSamples1,internalFormat1,width1,height1,fixedSampleLocations1);
}
typedef void (*PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC_HPP)(GLenum,GLsizei,GLsizei,GLint,GLsizei,GLsizei,GLsizei,GLboolean);
static inline void TexImage3DMultisampleCoverageNV(GLenum target1,GLsizei coverageSamples1,GLsizei colorSamples1,GLint internalFormat1,GLsizei width1,GLsizei height1,GLsizei depth1,GLboolean fixedSampleLocations1)
{
	static PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC_HPP fn=reinterpret_cast<PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC_HPP>(_impl::_get_proc_address("glTexImage3DMultisampleCoverageNV","GL_NV_texture_multisample"));
	 fn(target1,coverageSamples1,colorSamples1,internalFormat1,width1,height1,depth1,fixedSampleLocations1);
}
typedef void (*PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC_HPP)(GLuint,GLenum,GLsizei,GLsizei,GLint,GLsizei,GLsizei,GLboolean);
static inline void TextureImage2DMultisampleCoverageNV(GLuint texture1,GLenum target1,GLsizei coverageSamples1,GLsizei colorSamples1,GLint internalFormat1,GLsizei width1,GLsizei height1,GLboolean fixedSampleLocations1)
{
	static PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC_HPP>(_impl::_get_proc_address("glTextureImage2DMultisampleCoverageNV","GL_NV_texture_multisample"));
	 fn(texture1,target1,coverageSamples1,colorSamples1,internalFormat1,width1,height1,fixedSampleLocations1);
}
typedef void (*PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC_HPP)(GLuint,GLenum,GLsizei,GLint,GLsizei,GLsizei,GLboolean);
static inline void TextureImage2DMultisampleNV(GLuint texture1,GLenum target1,GLsizei samples1,GLint internalFormat1,GLsizei width1,GLsizei height1,GLboolean fixedSampleLocations1)
{
	static PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC_HPP>(_impl::_get_proc_address("glTextureImage2DMultisampleNV","GL_NV_texture_multisample"));
	 fn(texture1,target1,samples1,internalFormat1,width1,height1,fixedSampleLocations1);
}
typedef void (*PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC_HPP)(GLuint,GLenum,GLsizei,GLsizei,GLint,GLsizei,GLsizei,GLsizei,GLboolean);
static inline void TextureImage3DMultisampleCoverageNV(GLuint texture1,GLenum target1,GLsizei coverageSamples1,GLsizei colorSamples1,GLint internalFormat1,GLsizei width1,GLsizei height1,GLsizei depth1,GLboolean fixedSampleLocations1)
{
	static PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC_HPP>(_impl::_get_proc_address("glTextureImage3DMultisampleCoverageNV","GL_NV_texture_multisample"));
	 fn(texture1,target1,coverageSamples1,colorSamples1,internalFormat1,width1,height1,depth1,fixedSampleLocations1);
}
typedef void (*PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC_HPP)(GLuint,GLenum,GLsizei,GLint,GLsizei,GLsizei,GLsizei,GLboolean);
static inline void TextureImage3DMultisampleNV(GLuint texture1,GLenum target1,GLsizei samples1,GLint internalFormat1,GLsizei width1,GLsizei height1,GLsizei depth1,GLboolean fixedSampleLocations1)
{
	static PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC_HPP fn=reinterpret_cast<PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC_HPP>(_impl::_get_proc_address("glTextureImage3DMultisampleNV","GL_NV_texture_multisample"));
	 fn(texture1,target1,samples1,internalFormat1,width1,height1,depth1,fixedSampleLocations1);
}}
#endif

#ifndef GL_NV_texture_rectangle
#define GL_NV_texture_rectangle
#ifndef GL_TEXTURE_RECTANGLE_NV
#define GL_TEXTURE_RECTANGLE_NV 0x84F5
#endif //GL_TEXTURE_RECTANGLE_NV
#ifndef GL_TEXTURE_BINDING_RECTANGLE_NV
#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6
#endif //GL_TEXTURE_BINDING_RECTANGLE_NV
#ifndef GL_PROXY_TEXTURE_RECTANGLE_NV
#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7
#endif //GL_PROXY_TEXTURE_RECTANGLE_NV
#ifndef GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8
#endif //GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_texture_shader
#define GL_NV_texture_shader
#ifndef GL_OFFSET_TEXTURE_RECTANGLE_NV
#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C
#endif //GL_OFFSET_TEXTURE_RECTANGLE_NV
#ifndef GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV
#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D
#endif //GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV
#ifndef GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV
#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E
#endif //GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV
#ifndef GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV
#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9
#endif //GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV
#ifndef GL_UNSIGNED_INT_S8_S8_8_8_NV
#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA
#endif //GL_UNSIGNED_INT_S8_S8_8_8_NV
#ifndef GL_UNSIGNED_INT_8_8_S8_S8_REV_NV
#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB
#endif //GL_UNSIGNED_INT_8_8_S8_S8_REV_NV
#ifndef GL_DSDT_MAG_INTENSITY_NV
#define GL_DSDT_MAG_INTENSITY_NV 0x86DC
#endif //GL_DSDT_MAG_INTENSITY_NV
#ifndef GL_SHADER_CONSISTENT_NV
#define GL_SHADER_CONSISTENT_NV 0x86DD
#endif //GL_SHADER_CONSISTENT_NV
#ifndef GL_TEXTURE_SHADER_NV
#define GL_TEXTURE_SHADER_NV 0x86DE
#endif //GL_TEXTURE_SHADER_NV
#ifndef GL_SHADER_OPERATION_NV
#define GL_SHADER_OPERATION_NV 0x86DF
#endif //GL_SHADER_OPERATION_NV
#ifndef GL_CULL_MODES_NV
#define GL_CULL_MODES_NV 0x86E0
#endif //GL_CULL_MODES_NV
#ifndef GL_OFFSET_TEXTURE_MATRIX_NV
#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1
#endif //GL_OFFSET_TEXTURE_MATRIX_NV
#ifndef GL_OFFSET_TEXTURE_2D_MATRIX_NV
#define GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1
#endif //GL_OFFSET_TEXTURE_2D_MATRIX_NV
#ifndef GL_OFFSET_TEXTURE_2D_SCALE_NV
#define GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2
#endif //GL_OFFSET_TEXTURE_2D_SCALE_NV
#ifndef GL_OFFSET_TEXTURE_SCALE_NV
#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2
#endif //GL_OFFSET_TEXTURE_SCALE_NV
#ifndef GL_OFFSET_TEXTURE_2D_BIAS_NV
#define GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3
#endif //GL_OFFSET_TEXTURE_2D_BIAS_NV
#ifndef GL_OFFSET_TEXTURE_BIAS_NV
#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3
#endif //GL_OFFSET_TEXTURE_BIAS_NV
#ifndef GL_PREVIOUS_TEXTURE_INPUT_NV
#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4
#endif //GL_PREVIOUS_TEXTURE_INPUT_NV
#ifndef GL_CONST_EYE_NV
#define GL_CONST_EYE_NV 0x86E5
#endif //GL_CONST_EYE_NV
#ifndef GL_PASS_THROUGH_NV
#define GL_PASS_THROUGH_NV 0x86E6
#endif //GL_PASS_THROUGH_NV
#ifndef GL_CULL_FRAGMENT_NV
#define GL_CULL_FRAGMENT_NV 0x86E7
#endif //GL_CULL_FRAGMENT_NV
#ifndef GL_OFFSET_TEXTURE_2D_NV
#define GL_OFFSET_TEXTURE_2D_NV 0x86E8
#endif //GL_OFFSET_TEXTURE_2D_NV
#ifndef GL_DEPENDENT_AR_TEXTURE_2D_NV
#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9
#endif //GL_DEPENDENT_AR_TEXTURE_2D_NV
#ifndef GL_DEPENDENT_GB_TEXTURE_2D_NV
#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA
#endif //GL_DEPENDENT_GB_TEXTURE_2D_NV
#ifndef GL_DOT_PRODUCT_NV
#define GL_DOT_PRODUCT_NV 0x86EC
#endif //GL_DOT_PRODUCT_NV
#ifndef GL_DOT_PRODUCT_DEPTH_REPLACE_NV
#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED
#endif //GL_DOT_PRODUCT_DEPTH_REPLACE_NV
#ifndef GL_DOT_PRODUCT_TEXTURE_2D_NV
#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE
#endif //GL_DOT_PRODUCT_TEXTURE_2D_NV
#ifndef GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV
#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0
#endif //GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV
#ifndef GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV
#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1
#endif //GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV
#ifndef GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV
#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2
#endif //GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV
#ifndef GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV
#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3
#endif //GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV
#ifndef GL_HILO_NV
#define GL_HILO_NV 0x86F4
#endif //GL_HILO_NV
#ifndef GL_DSDT_NV
#define GL_DSDT_NV 0x86F5
#endif //GL_DSDT_NV
#ifndef GL_DSDT_MAG_NV
#define GL_DSDT_MAG_NV 0x86F6
#endif //GL_DSDT_MAG_NV
#ifndef GL_DSDT_MAG_VIB_NV
#define GL_DSDT_MAG_VIB_NV 0x86F7
#endif //GL_DSDT_MAG_VIB_NV
#ifndef GL_HILO16_NV
#define GL_HILO16_NV 0x86F8
#endif //GL_HILO16_NV
#ifndef GL_SIGNED_HILO_NV
#define GL_SIGNED_HILO_NV 0x86F9
#endif //GL_SIGNED_HILO_NV
#ifndef GL_SIGNED_HILO16_NV
#define GL_SIGNED_HILO16_NV 0x86FA
#endif //GL_SIGNED_HILO16_NV
#ifndef GL_SIGNED_RGBA_NV
#define GL_SIGNED_RGBA_NV 0x86FB
#endif //GL_SIGNED_RGBA_NV
#ifndef GL_SIGNED_RGBA8_NV
#define GL_SIGNED_RGBA8_NV 0x86FC
#endif //GL_SIGNED_RGBA8_NV
#ifndef GL_SIGNED_RGB_NV
#define GL_SIGNED_RGB_NV 0x86FE
#endif //GL_SIGNED_RGB_NV
#ifndef GL_SIGNED_RGB8_NV
#define GL_SIGNED_RGB8_NV 0x86FF
#endif //GL_SIGNED_RGB8_NV
#ifndef GL_SIGNED_LUMINANCE_NV
#define GL_SIGNED_LUMINANCE_NV 0x8701
#endif //GL_SIGNED_LUMINANCE_NV
#ifndef GL_SIGNED_LUMINANCE8_NV
#define GL_SIGNED_LUMINANCE8_NV 0x8702
#endif //GL_SIGNED_LUMINANCE8_NV
#ifndef GL_SIGNED_LUMINANCE_ALPHA_NV
#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703
#endif //GL_SIGNED_LUMINANCE_ALPHA_NV
#ifndef GL_SIGNED_LUMINANCE8_ALPHA8_NV
#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704
#endif //GL_SIGNED_LUMINANCE8_ALPHA8_NV
#ifndef GL_SIGNED_ALPHA_NV
#define GL_SIGNED_ALPHA_NV 0x8705
#endif //GL_SIGNED_ALPHA_NV
#ifndef GL_SIGNED_ALPHA8_NV
#define GL_SIGNED_ALPHA8_NV 0x8706
#endif //GL_SIGNED_ALPHA8_NV
#ifndef GL_SIGNED_INTENSITY_NV
#define GL_SIGNED_INTENSITY_NV 0x8707
#endif //GL_SIGNED_INTENSITY_NV
#ifndef GL_SIGNED_INTENSITY8_NV
#define GL_SIGNED_INTENSITY8_NV 0x8708
#endif //GL_SIGNED_INTENSITY8_NV
#ifndef GL_DSDT8_NV
#define GL_DSDT8_NV 0x8709
#endif //GL_DSDT8_NV
#ifndef GL_DSDT8_MAG8_NV
#define GL_DSDT8_MAG8_NV 0x870A
#endif //GL_DSDT8_MAG8_NV
#ifndef GL_DSDT8_MAG8_INTENSITY8_NV
#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B
#endif //GL_DSDT8_MAG8_INTENSITY8_NV
#ifndef GL_SIGNED_RGB_UNSIGNED_ALPHA_NV
#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C
#endif //GL_SIGNED_RGB_UNSIGNED_ALPHA_NV
#ifndef GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV
#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D
#endif //GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV
#ifndef GL_HI_SCALE_NV
#define GL_HI_SCALE_NV 0x870E
#endif //GL_HI_SCALE_NV
#ifndef GL_LO_SCALE_NV
#define GL_LO_SCALE_NV 0x870F
#endif //GL_LO_SCALE_NV
#ifndef GL_DS_SCALE_NV
#define GL_DS_SCALE_NV 0x8710
#endif //GL_DS_SCALE_NV
#ifndef GL_DT_SCALE_NV
#define GL_DT_SCALE_NV 0x8711
#endif //GL_DT_SCALE_NV
#ifndef GL_MAGNITUDE_SCALE_NV
#define GL_MAGNITUDE_SCALE_NV 0x8712
#endif //GL_MAGNITUDE_SCALE_NV
#ifndef GL_VIBRANCE_SCALE_NV
#define GL_VIBRANCE_SCALE_NV 0x8713
#endif //GL_VIBRANCE_SCALE_NV
#ifndef GL_HI_BIAS_NV
#define GL_HI_BIAS_NV 0x8714
#endif //GL_HI_BIAS_NV
#ifndef GL_LO_BIAS_NV
#define GL_LO_BIAS_NV 0x8715
#endif //GL_LO_BIAS_NV
#ifndef GL_DS_BIAS_NV
#define GL_DS_BIAS_NV 0x8716
#endif //GL_DS_BIAS_NV
#ifndef GL_DT_BIAS_NV
#define GL_DT_BIAS_NV 0x8717
#endif //GL_DT_BIAS_NV
#ifndef GL_MAGNITUDE_BIAS_NV
#define GL_MAGNITUDE_BIAS_NV 0x8718
#endif //GL_MAGNITUDE_BIAS_NV
#ifndef GL_VIBRANCE_BIAS_NV
#define GL_VIBRANCE_BIAS_NV 0x8719
#endif //GL_VIBRANCE_BIAS_NV
#ifndef GL_TEXTURE_BORDER_VALUES_NV
#define GL_TEXTURE_BORDER_VALUES_NV 0x871A
#endif //GL_TEXTURE_BORDER_VALUES_NV
#ifndef GL_TEXTURE_HI_SIZE_NV
#define GL_TEXTURE_HI_SIZE_NV 0x871B
#endif //GL_TEXTURE_HI_SIZE_NV
#ifndef GL_TEXTURE_LO_SIZE_NV
#define GL_TEXTURE_LO_SIZE_NV 0x871C
#endif //GL_TEXTURE_LO_SIZE_NV
#ifndef GL_TEXTURE_DS_SIZE_NV
#define GL_TEXTURE_DS_SIZE_NV 0x871D
#endif //GL_TEXTURE_DS_SIZE_NV
#ifndef GL_TEXTURE_DT_SIZE_NV
#define GL_TEXTURE_DT_SIZE_NV 0x871E
#endif //GL_TEXTURE_DT_SIZE_NV
#ifndef GL_TEXTURE_MAG_SIZE_NV
#define GL_TEXTURE_MAG_SIZE_NV 0x871F
#endif //GL_TEXTURE_MAG_SIZE_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_texture_shader2
#define GL_NV_texture_shader2
#ifndef GL_DOT_PRODUCT_TEXTURE_3D_NV
#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF
#endif //GL_DOT_PRODUCT_TEXTURE_3D_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_texture_shader3
#define GL_NV_texture_shader3
#ifndef GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV
#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850
#endif //GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV
#ifndef GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV
#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851
#endif //GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV
#ifndef GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV
#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852
#endif //GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV
#ifndef GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV
#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853
#endif //GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV
#ifndef GL_OFFSET_HILO_TEXTURE_2D_NV
#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854
#endif //GL_OFFSET_HILO_TEXTURE_2D_NV
#ifndef GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV
#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855
#endif //GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV
#ifndef GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV
#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856
#endif //GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV
#ifndef GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV
#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857
#endif //GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV
#ifndef GL_DEPENDENT_HILO_TEXTURE_2D_NV
#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858
#endif //GL_DEPENDENT_HILO_TEXTURE_2D_NV
#ifndef GL_DEPENDENT_RGB_TEXTURE_3D_NV
#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859
#endif //GL_DEPENDENT_RGB_TEXTURE_3D_NV
#ifndef GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV
#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A
#endif //GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV
#ifndef GL_DOT_PRODUCT_PASS_THROUGH_NV
#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B
#endif //GL_DOT_PRODUCT_PASS_THROUGH_NV
#ifndef GL_DOT_PRODUCT_TEXTURE_1D_NV
#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C
#endif //GL_DOT_PRODUCT_TEXTURE_1D_NV
#ifndef GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV
#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D
#endif //GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV
#ifndef GL_HILO8_NV
#define GL_HILO8_NV 0x885E
#endif //GL_HILO8_NV
#ifndef GL_SIGNED_HILO8_NV
#define GL_SIGNED_HILO8_NV 0x885F
#endif //GL_SIGNED_HILO8_NV
#ifndef GL_FORCE_BLUE_TO_ONE_NV
#define GL_FORCE_BLUE_TO_ONE_NV 0x8860
#endif //GL_FORCE_BLUE_TO_ONE_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_transform_feedback
#define GL_NV_transform_feedback
#ifndef GL_NEXT_BUFFER_NV
#define GL_NEXT_BUFFER_NV -2
#endif //GL_NEXT_BUFFER_NV
#ifndef GL_SKIP_COMPONENTS4_NV
#define GL_SKIP_COMPONENTS4_NV -3
#endif //GL_SKIP_COMPONENTS4_NV
#ifndef GL_SKIP_COMPONENTS3_NV
#define GL_SKIP_COMPONENTS3_NV -4
#endif //GL_SKIP_COMPONENTS3_NV
#ifndef GL_SKIP_COMPONENTS2_NV
#define GL_SKIP_COMPONENTS2_NV -5
#endif //GL_SKIP_COMPONENTS2_NV
#ifndef GL_SKIP_COMPONENTS1_NV
#define GL_SKIP_COMPONENTS1_NV -6
#endif //GL_SKIP_COMPONENTS1_NV
#ifndef GL_BACK_PRIMARY_COLOR_NV
#define GL_BACK_PRIMARY_COLOR_NV 0x8C77
#endif //GL_BACK_PRIMARY_COLOR_NV
#ifndef GL_BACK_SECONDARY_COLOR_NV
#define GL_BACK_SECONDARY_COLOR_NV 0x8C78
#endif //GL_BACK_SECONDARY_COLOR_NV
#ifndef GL_TEXTURE_COORD_NV
#define GL_TEXTURE_COORD_NV 0x8C79
#endif //GL_TEXTURE_COORD_NV
#ifndef GL_CLIP_DISTANCE_NV
#define GL_CLIP_DISTANCE_NV 0x8C7A
#endif //GL_CLIP_DISTANCE_NV
#ifndef GL_VERTEX_ID_NV
#define GL_VERTEX_ID_NV 0x8C7B
#endif //GL_VERTEX_ID_NV
#ifndef GL_PRIMITIVE_ID_NV
#define GL_PRIMITIVE_ID_NV 0x8C7C
#endif //GL_PRIMITIVE_ID_NV
#ifndef GL_GENERIC_ATTRIB_NV
#define GL_GENERIC_ATTRIB_NV 0x8C7D
#endif //GL_GENERIC_ATTRIB_NV
#ifndef GL_TRANSFORM_FEEDBACK_ATTRIBS_NV
#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E
#endif //GL_TRANSFORM_FEEDBACK_ATTRIBS_NV
#ifndef GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV
#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F
#endif //GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV
#ifndef GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV
#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80
#endif //GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV
#ifndef GL_ACTIVE_VARYINGS_NV
#define GL_ACTIVE_VARYINGS_NV 0x8C81
#endif //GL_ACTIVE_VARYINGS_NV
#ifndef GL_ACTIVE_VARYING_MAX_LENGTH_NV
#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82
#endif //GL_ACTIVE_VARYING_MAX_LENGTH_NV
#ifndef GL_TRANSFORM_FEEDBACK_VARYINGS_NV
#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83
#endif //GL_TRANSFORM_FEEDBACK_VARYINGS_NV
#ifndef GL_TRANSFORM_FEEDBACK_BUFFER_START_NV
#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84
#endif //GL_TRANSFORM_FEEDBACK_BUFFER_START_NV
#ifndef GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV
#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85
#endif //GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV
#ifndef GL_TRANSFORM_FEEDBACK_RECORD_NV
#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86
#endif //GL_TRANSFORM_FEEDBACK_RECORD_NV
#ifndef GL_PRIMITIVES_GENERATED_NV
#define GL_PRIMITIVES_GENERATED_NV 0x8C87
#endif //GL_PRIMITIVES_GENERATED_NV
#ifndef GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV
#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88
#endif //GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV
#ifndef GL_RASTERIZER_DISCARD_NV
#define GL_RASTERIZER_DISCARD_NV 0x8C89
#endif //GL_RASTERIZER_DISCARD_NV
#ifndef GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV
#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A
#endif //GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV
#ifndef GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV
#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B
#endif //GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV
#ifndef GL_INTERLEAVED_ATTRIBS_NV
#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C
#endif //GL_INTERLEAVED_ATTRIBS_NV
#ifndef GL_SEPARATE_ATTRIBS_NV
#define GL_SEPARATE_ATTRIBS_NV 0x8C8D
#endif //GL_SEPARATE_ATTRIBS_NV
#ifndef GL_TRANSFORM_FEEDBACK_BUFFER_NV
#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E
#endif //GL_TRANSFORM_FEEDBACK_BUFFER_NV
#ifndef GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV
#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F
#endif //GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV
#ifndef GL_LAYER_NV
#define GL_LAYER_NV 0x8DAA
#endif //GL_LAYER_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLACTIVEVARYINGNVPROC_HPP)(GLuint,const GLchar *);
static inline void ActiveVaryingNV(GLuint program1,const GLchar * name1)
{
	static PFNGLACTIVEVARYINGNVPROC_HPP fn=reinterpret_cast<PFNGLACTIVEVARYINGNVPROC_HPP>(_impl::_get_proc_address("glActiveVaryingNV","GL_NV_transform_feedback"));
	 fn(program1,name1);
}
typedef void (*PFNGLBEGINTRANSFORMFEEDBACKNVPROC_HPP)(GLenum);
static inline void BeginTransformFeedbackNV(GLenum primitiveMode1)
{
	static PFNGLBEGINTRANSFORMFEEDBACKNVPROC_HPP fn=reinterpret_cast<PFNGLBEGINTRANSFORMFEEDBACKNVPROC_HPP>(_impl::_get_proc_address("glBeginTransformFeedbackNV","GL_NV_transform_feedback"));
	 fn(primitiveMode1);
}
typedef void (*PFNGLBINDBUFFERBASENVPROC_HPP)(GLenum,GLuint,GLuint);
static inline void BindBufferBaseNV(GLenum target1,GLuint index1,GLuint buffer1)
{
	static PFNGLBINDBUFFERBASENVPROC_HPP fn=reinterpret_cast<PFNGLBINDBUFFERBASENVPROC_HPP>(_impl::_get_proc_address("glBindBufferBaseNV","GL_NV_transform_feedback"));
	 fn(target1,index1,buffer1);
}
typedef void (*PFNGLBINDBUFFEROFFSETNVPROC_HPP)(GLenum,GLuint,GLuint,GLintptr);
static inline void BindBufferOffsetNV(GLenum target1,GLuint index1,GLuint buffer1,GLintptr offset1)
{
	static PFNGLBINDBUFFEROFFSETNVPROC_HPP fn=reinterpret_cast<PFNGLBINDBUFFEROFFSETNVPROC_HPP>(_impl::_get_proc_address("glBindBufferOffsetNV","GL_NV_transform_feedback"));
	 fn(target1,index1,buffer1,offset1);
}
typedef void (*PFNGLBINDBUFFERRANGENVPROC_HPP)(GLenum,GLuint,GLuint,GLintptr,GLsizeiptr);
static inline void BindBufferRangeNV(GLenum target1,GLuint index1,GLuint buffer1,GLintptr offset1,GLsizeiptr size1)
{
	static PFNGLBINDBUFFERRANGENVPROC_HPP fn=reinterpret_cast<PFNGLBINDBUFFERRANGENVPROC_HPP>(_impl::_get_proc_address("glBindBufferRangeNV","GL_NV_transform_feedback"));
	 fn(target1,index1,buffer1,offset1,size1);
}
typedef void (*PFNGLENDTRANSFORMFEEDBACKNVPROC_HPP)();
static inline void EndTransformFeedbackNV()
{
	static PFNGLENDTRANSFORMFEEDBACKNVPROC_HPP fn=reinterpret_cast<PFNGLENDTRANSFORMFEEDBACKNVPROC_HPP>(_impl::_get_proc_address("glEndTransformFeedbackNV","GL_NV_transform_feedback"));
	 fn();
}
typedef void (*PFNGLGETACTIVEVARYINGNVPROC_HPP)(GLuint,GLuint,GLsizei,GLsizei *,GLsizei *,GLenum *,GLchar *);
static inline void GetActiveVaryingNV(GLuint program1,GLuint index1,GLsizei bufSize1,GLsizei * length1,GLsizei * size1,GLenum * type1,GLchar * name1)
{
	static PFNGLGETACTIVEVARYINGNVPROC_HPP fn=reinterpret_cast<PFNGLGETACTIVEVARYINGNVPROC_HPP>(_impl::_get_proc_address("glGetActiveVaryingNV","GL_NV_transform_feedback"));
	 fn(program1,index1,bufSize1,length1,size1,type1,name1);
}
typedef void (*PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC_HPP)(GLuint,GLuint,GLint *);
static inline void GetTransformFeedbackVaryingNV(GLuint program1,GLuint index1,GLint * location1)
{
	static PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC_HPP fn=reinterpret_cast<PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC_HPP>(_impl::_get_proc_address("glGetTransformFeedbackVaryingNV","GL_NV_transform_feedback"));
	 fn(program1,index1,location1);
}
typedef GLint (*PFNGLGETVARYINGLOCATIONNVPROC_HPP)(GLuint,const GLchar *);
static inline GLint GetVaryingLocationNV(GLuint program1,const GLchar * name1)
{
	static PFNGLGETVARYINGLOCATIONNVPROC_HPP fn=reinterpret_cast<PFNGLGETVARYINGLOCATIONNVPROC_HPP>(_impl::_get_proc_address("glGetVaryingLocationNV","GL_NV_transform_feedback"));
	return fn(program1,name1);
}
typedef void (*PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC_HPP)(GLsizei,const GLint *,GLenum);
static inline void TransformFeedbackAttribsNV(GLsizei count1,const GLint * attribs1,GLenum bufferMode1)
{
	static PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC_HPP fn=reinterpret_cast<PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC_HPP>(_impl::_get_proc_address("glTransformFeedbackAttribsNV","GL_NV_transform_feedback"));
	 fn(count1,attribs1,bufferMode1);
}
typedef void (*PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC_HPP)(GLsizei,const GLint *,GLsizei,const GLint *,GLenum);
static inline void TransformFeedbackStreamAttribsNV(GLsizei count1,const GLint * attribs1,GLsizei nbuffers1,const GLint * bufstreams1,GLenum bufferMode1)
{
	static PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC_HPP fn=reinterpret_cast<PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC_HPP>(_impl::_get_proc_address("glTransformFeedbackStreamAttribsNV","GL_NV_transform_feedback"));
	 fn(count1,attribs1,nbuffers1,bufstreams1,bufferMode1);
}
typedef void (*PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC_HPP)(GLuint,GLsizei,const GLint *,GLenum);
static inline void TransformFeedbackVaryingsNV(GLuint program1,GLsizei count1,const GLint * locations1,GLenum bufferMode1)
{
	static PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC_HPP fn=reinterpret_cast<PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC_HPP>(_impl::_get_proc_address("glTransformFeedbackVaryingsNV","GL_NV_transform_feedback"));
	 fn(program1,count1,locations1,bufferMode1);
}}
#endif

#ifndef GL_NV_transform_feedback2
#define GL_NV_transform_feedback2
#ifndef GL_TRANSFORM_FEEDBACK_NV
#define GL_TRANSFORM_FEEDBACK_NV 0x8E22
#endif //GL_TRANSFORM_FEEDBACK_NV
#ifndef GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV
#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23
#endif //GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV
#ifndef GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV
#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24
#endif //GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV
#ifndef GL_TRANSFORM_FEEDBACK_BINDING_NV
#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25
#endif //GL_TRANSFORM_FEEDBACK_BINDING_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLBINDTRANSFORMFEEDBACKNVPROC_HPP)(GLenum,GLuint);
static inline void BindTransformFeedbackNV(GLenum target1,GLuint id1)
{
	static PFNGLBINDTRANSFORMFEEDBACKNVPROC_HPP fn=reinterpret_cast<PFNGLBINDTRANSFORMFEEDBACKNVPROC_HPP>(_impl::_get_proc_address("glBindTransformFeedbackNV","GL_NV_transform_feedback2"));
	 fn(target1,id1);
}
typedef void (*PFNGLDELETETRANSFORMFEEDBACKSNVPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteTransformFeedbacksNV(GLsizei n1,const GLuint * ids1)
{
	static PFNGLDELETETRANSFORMFEEDBACKSNVPROC_HPP fn=reinterpret_cast<PFNGLDELETETRANSFORMFEEDBACKSNVPROC_HPP>(_impl::_get_proc_address("glDeleteTransformFeedbacksNV","GL_NV_transform_feedback2"));
	 fn(n1,ids1);
}
typedef void (*PFNGLDRAWTRANSFORMFEEDBACKNVPROC_HPP)(GLenum,GLuint);
static inline void DrawTransformFeedbackNV(GLenum mode1,GLuint id1)
{
	static PFNGLDRAWTRANSFORMFEEDBACKNVPROC_HPP fn=reinterpret_cast<PFNGLDRAWTRANSFORMFEEDBACKNVPROC_HPP>(_impl::_get_proc_address("glDrawTransformFeedbackNV","GL_NV_transform_feedback2"));
	 fn(mode1,id1);
}
typedef void (*PFNGLGENTRANSFORMFEEDBACKSNVPROC_HPP)(GLsizei,GLuint *);
static inline void GenTransformFeedbacksNV(GLsizei n1,GLuint * ids1)
{
	static PFNGLGENTRANSFORMFEEDBACKSNVPROC_HPP fn=reinterpret_cast<PFNGLGENTRANSFORMFEEDBACKSNVPROC_HPP>(_impl::_get_proc_address("glGenTransformFeedbacksNV","GL_NV_transform_feedback2"));
	 fn(n1,ids1);
}
typedef GLboolean (*PFNGLISTRANSFORMFEEDBACKNVPROC_HPP)(GLuint);
static inline GLboolean IsTransformFeedbackNV(GLuint id1)
{
	static PFNGLISTRANSFORMFEEDBACKNVPROC_HPP fn=reinterpret_cast<PFNGLISTRANSFORMFEEDBACKNVPROC_HPP>(_impl::_get_proc_address("glIsTransformFeedbackNV","GL_NV_transform_feedback2"));
	return fn(id1);
}
typedef void (*PFNGLPAUSETRANSFORMFEEDBACKNVPROC_HPP)();
static inline void PauseTransformFeedbackNV()
{
	static PFNGLPAUSETRANSFORMFEEDBACKNVPROC_HPP fn=reinterpret_cast<PFNGLPAUSETRANSFORMFEEDBACKNVPROC_HPP>(_impl::_get_proc_address("glPauseTransformFeedbackNV","GL_NV_transform_feedback2"));
	 fn();
}
typedef void (*PFNGLRESUMETRANSFORMFEEDBACKNVPROC_HPP)();
static inline void ResumeTransformFeedbackNV()
{
	static PFNGLRESUMETRANSFORMFEEDBACKNVPROC_HPP fn=reinterpret_cast<PFNGLRESUMETRANSFORMFEEDBACKNVPROC_HPP>(_impl::_get_proc_address("glResumeTransformFeedbackNV","GL_NV_transform_feedback2"));
	 fn();
}}
#endif

#ifndef GL_NV_uniform_buffer_unified_memory
#define GL_NV_uniform_buffer_unified_memory
#ifndef GL_UNIFORM_BUFFER_UNIFIED_NV
#define GL_UNIFORM_BUFFER_UNIFIED_NV 0x936E
#endif //GL_UNIFORM_BUFFER_UNIFIED_NV
#ifndef GL_UNIFORM_BUFFER_ADDRESS_NV
#define GL_UNIFORM_BUFFER_ADDRESS_NV 0x936F
#endif //GL_UNIFORM_BUFFER_ADDRESS_NV
#ifndef GL_UNIFORM_BUFFER_LENGTH_NV
#define GL_UNIFORM_BUFFER_LENGTH_NV 0x9370
#endif //GL_UNIFORM_BUFFER_LENGTH_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_vdpau_interop
#define GL_NV_vdpau_interop
#ifndef GL_SURFACE_STATE_NV
#define GL_SURFACE_STATE_NV 0x86EB
#endif //GL_SURFACE_STATE_NV
#ifndef GL_SURFACE_REGISTERED_NV
#define GL_SURFACE_REGISTERED_NV 0x86FD
#endif //GL_SURFACE_REGISTERED_NV
#ifndef GL_SURFACE_MAPPED_NV
#define GL_SURFACE_MAPPED_NV 0x8700
#endif //GL_SURFACE_MAPPED_NV
#ifndef GL_WRITE_DISCARD_NV
#define GL_WRITE_DISCARD_NV 0x88BE
#endif //GL_WRITE_DISCARD_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLVDPAUFININVPROC_HPP)();
static inline void VDPAUFiniNV()
{
	static PFNGLVDPAUFININVPROC_HPP fn=reinterpret_cast<PFNGLVDPAUFININVPROC_HPP>(_impl::_get_proc_address("glVDPAUFiniNV","GL_NV_vdpau_interop"));
	 fn();
}
typedef void (*PFNGLVDPAUGETSURFACEIVNVPROC_HPP)(GLvdpauSurfaceNV,GLenum,GLsizei,GLsizei *,GLint *);
static inline void VDPAUGetSurfaceivNV(GLvdpauSurfaceNV surface1,GLenum pname1,GLsizei bufSize1,GLsizei * length1,GLint * values1)
{
	static PFNGLVDPAUGETSURFACEIVNVPROC_HPP fn=reinterpret_cast<PFNGLVDPAUGETSURFACEIVNVPROC_HPP>(_impl::_get_proc_address("glVDPAUGetSurfaceivNV","GL_NV_vdpau_interop"));
	 fn(surface1,pname1,bufSize1,length1,values1);
}
typedef void (*PFNGLVDPAUINITNVPROC_HPP)(const void *,const void *);
static inline void VDPAUInitNV(const void * vdpDevice1,const void * getProcAddress1)
{
	static PFNGLVDPAUINITNVPROC_HPP fn=reinterpret_cast<PFNGLVDPAUINITNVPROC_HPP>(_impl::_get_proc_address("glVDPAUInitNV","GL_NV_vdpau_interop"));
	 fn(vdpDevice1,getProcAddress1);
}
typedef GLboolean (*PFNGLVDPAUISSURFACENVPROC_HPP)(GLvdpauSurfaceNV);
static inline GLboolean VDPAUIsSurfaceNV(GLvdpauSurfaceNV surface1)
{
	static PFNGLVDPAUISSURFACENVPROC_HPP fn=reinterpret_cast<PFNGLVDPAUISSURFACENVPROC_HPP>(_impl::_get_proc_address("glVDPAUIsSurfaceNV","GL_NV_vdpau_interop"));
	return fn(surface1);
}
typedef void (*PFNGLVDPAUMAPSURFACESNVPROC_HPP)(GLsizei,const GLvdpauSurfaceNV *);
static inline void VDPAUMapSurfacesNV(GLsizei numSurfaces1,const GLvdpauSurfaceNV * surfaces1)
{
	static PFNGLVDPAUMAPSURFACESNVPROC_HPP fn=reinterpret_cast<PFNGLVDPAUMAPSURFACESNVPROC_HPP>(_impl::_get_proc_address("glVDPAUMapSurfacesNV","GL_NV_vdpau_interop"));
	 fn(numSurfaces1,surfaces1);
}
typedef GLvdpauSurfaceNV (*PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC_HPP)(const void *,GLenum,GLsizei,const GLuint *);
static inline GLvdpauSurfaceNV VDPAURegisterOutputSurfaceNV(const void * vdpSurface1,GLenum target1,GLsizei numTextureNames1,const GLuint * textureNames1)
{
	static PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC_HPP fn=reinterpret_cast<PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC_HPP>(_impl::_get_proc_address("glVDPAURegisterOutputSurfaceNV","GL_NV_vdpau_interop"));
	return fn(vdpSurface1,target1,numTextureNames1,textureNames1);
}
typedef GLvdpauSurfaceNV (*PFNGLVDPAUREGISTERVIDEOSURFACENVPROC_HPP)(const void *,GLenum,GLsizei,const GLuint *);
static inline GLvdpauSurfaceNV VDPAURegisterVideoSurfaceNV(const void * vdpSurface1,GLenum target1,GLsizei numTextureNames1,const GLuint * textureNames1)
{
	static PFNGLVDPAUREGISTERVIDEOSURFACENVPROC_HPP fn=reinterpret_cast<PFNGLVDPAUREGISTERVIDEOSURFACENVPROC_HPP>(_impl::_get_proc_address("glVDPAURegisterVideoSurfaceNV","GL_NV_vdpau_interop"));
	return fn(vdpSurface1,target1,numTextureNames1,textureNames1);
}
typedef void (*PFNGLVDPAUSURFACEACCESSNVPROC_HPP)(GLvdpauSurfaceNV,GLenum);
static inline void VDPAUSurfaceAccessNV(GLvdpauSurfaceNV surface1,GLenum access1)
{
	static PFNGLVDPAUSURFACEACCESSNVPROC_HPP fn=reinterpret_cast<PFNGLVDPAUSURFACEACCESSNVPROC_HPP>(_impl::_get_proc_address("glVDPAUSurfaceAccessNV","GL_NV_vdpau_interop"));
	 fn(surface1,access1);
}
typedef void (*PFNGLVDPAUUNMAPSURFACESNVPROC_HPP)(GLsizei,const GLvdpauSurfaceNV *);
static inline void VDPAUUnmapSurfacesNV(GLsizei numSurface1,const GLvdpauSurfaceNV * surfaces1)
{
	static PFNGLVDPAUUNMAPSURFACESNVPROC_HPP fn=reinterpret_cast<PFNGLVDPAUUNMAPSURFACESNVPROC_HPP>(_impl::_get_proc_address("glVDPAUUnmapSurfacesNV","GL_NV_vdpau_interop"));
	 fn(numSurface1,surfaces1);
}
typedef void (*PFNGLVDPAUUNREGISTERSURFACENVPROC_HPP)(GLvdpauSurfaceNV);
static inline void VDPAUUnregisterSurfaceNV(GLvdpauSurfaceNV surface1)
{
	static PFNGLVDPAUUNREGISTERSURFACENVPROC_HPP fn=reinterpret_cast<PFNGLVDPAUUNREGISTERSURFACENVPROC_HPP>(_impl::_get_proc_address("glVDPAUUnregisterSurfaceNV","GL_NV_vdpau_interop"));
	 fn(surface1);
}}
#endif

#ifndef GL_NV_vertex_array_range
#define GL_NV_vertex_array_range
#ifndef GL_VERTEX_ARRAY_RANGE_NV
#define GL_VERTEX_ARRAY_RANGE_NV 0x851D
#endif //GL_VERTEX_ARRAY_RANGE_NV
#ifndef GL_VERTEX_ARRAY_RANGE_LENGTH_NV
#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E
#endif //GL_VERTEX_ARRAY_RANGE_LENGTH_NV
#ifndef GL_VERTEX_ARRAY_RANGE_VALID_NV
#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F
#endif //GL_VERTEX_ARRAY_RANGE_VALID_NV
#ifndef GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV
#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520
#endif //GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV
#ifndef GL_VERTEX_ARRAY_RANGE_POINTER_NV
#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521
#endif //GL_VERTEX_ARRAY_RANGE_POINTER_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLFLUSHVERTEXARRAYRANGENVPROC_HPP)();
static inline void FlushVertexArrayRangeNV()
{
	static PFNGLFLUSHVERTEXARRAYRANGENVPROC_HPP fn=reinterpret_cast<PFNGLFLUSHVERTEXARRAYRANGENVPROC_HPP>(_impl::_get_proc_address("glFlushVertexArrayRangeNV","GL_NV_vertex_array_range"));
	 fn();
}
typedef void (*PFNGLVERTEXARRAYRANGENVPROC_HPP)(GLsizei,const void *);
static inline void VertexArrayRangeNV(GLsizei length1,const void * pointer1)
{
	static PFNGLVERTEXARRAYRANGENVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXARRAYRANGENVPROC_HPP>(_impl::_get_proc_address("glVertexArrayRangeNV","GL_NV_vertex_array_range"));
	 fn(length1,pointer1);
}}
#endif

#ifndef GL_NV_vertex_array_range2
#define GL_NV_vertex_array_range2
#ifndef GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV
#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533
#endif //GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_vertex_attrib_integer_64bit
#define GL_NV_vertex_attrib_integer_64bit
#ifndef GL_INT64_NV
#define GL_INT64_NV 0x140E
#endif //GL_INT64_NV
#ifndef GL_UNSIGNED_INT64_NV
#define GL_UNSIGNED_INT64_NV 0x140F
#endif //GL_UNSIGNED_INT64_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETVERTEXATTRIBLI64VNVPROC_HPP)(GLuint,GLenum,GLint64EXT *);
static inline void GetVertexAttribLi64vNV(GLuint index1,GLenum pname1,GLint64EXT * params1)
{
	static PFNGLGETVERTEXATTRIBLI64VNVPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBLI64VNVPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribLi64vNV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,pname1,params1);
}
typedef void (*PFNGLGETVERTEXATTRIBLUI64VNVPROC_HPP)(GLuint,GLenum,GLuint64EXT *);
static inline void GetVertexAttribLui64vNV(GLuint index1,GLenum pname1,GLuint64EXT * params1)
{
	static PFNGLGETVERTEXATTRIBLUI64VNVPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBLUI64VNVPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribLui64vNV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,pname1,params1);
}
typedef void (*PFNGLVERTEXATTRIBL1I64NVPROC_HPP)(GLuint,GLint64EXT);
static inline void VertexAttribL1i64NV(GLuint index1,GLint64EXT x1)
{
	static PFNGLVERTEXATTRIBL1I64NVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL1I64NVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL1i64NV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,x1);
}
typedef void (*PFNGLVERTEXATTRIBL1I64VNVPROC_HPP)(GLuint,const GLint64EXT *);
static inline void VertexAttribL1i64vNV(GLuint index1,const GLint64EXT * v1)
{
	static PFNGLVERTEXATTRIBL1I64VNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL1I64VNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL1i64vNV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBL1UI64NVPROC_HPP)(GLuint,GLuint64EXT);
static inline void VertexAttribL1ui64NV(GLuint index1,GLuint64EXT x1)
{
	static PFNGLVERTEXATTRIBL1UI64NVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL1UI64NVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL1ui64NV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,x1);
}
typedef void (*PFNGLVERTEXATTRIBL1UI64VNVPROC_HPP)(GLuint,const GLuint64EXT *);
static inline void VertexAttribL1ui64vNV(GLuint index1,const GLuint64EXT * v1)
{
	static PFNGLVERTEXATTRIBL1UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL1UI64VNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL1ui64vNV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBL2I64NVPROC_HPP)(GLuint,GLint64EXT,GLint64EXT);
static inline void VertexAttribL2i64NV(GLuint index1,GLint64EXT x1,GLint64EXT y1)
{
	static PFNGLVERTEXATTRIBL2I64NVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL2I64NVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL2i64NV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,x1,y1);
}
typedef void (*PFNGLVERTEXATTRIBL2I64VNVPROC_HPP)(GLuint,const GLint64EXT *);
static inline void VertexAttribL2i64vNV(GLuint index1,const GLint64EXT * v1)
{
	static PFNGLVERTEXATTRIBL2I64VNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL2I64VNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL2i64vNV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBL2UI64NVPROC_HPP)(GLuint,GLuint64EXT,GLuint64EXT);
static inline void VertexAttribL2ui64NV(GLuint index1,GLuint64EXT x1,GLuint64EXT y1)
{
	static PFNGLVERTEXATTRIBL2UI64NVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL2UI64NVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL2ui64NV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,x1,y1);
}
typedef void (*PFNGLVERTEXATTRIBL2UI64VNVPROC_HPP)(GLuint,const GLuint64EXT *);
static inline void VertexAttribL2ui64vNV(GLuint index1,const GLuint64EXT * v1)
{
	static PFNGLVERTEXATTRIBL2UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL2UI64VNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL2ui64vNV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBL3I64NVPROC_HPP)(GLuint,GLint64EXT,GLint64EXT,GLint64EXT);
static inline void VertexAttribL3i64NV(GLuint index1,GLint64EXT x1,GLint64EXT y1,GLint64EXT z1)
{
	static PFNGLVERTEXATTRIBL3I64NVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL3I64NVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL3i64NV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXATTRIBL3I64VNVPROC_HPP)(GLuint,const GLint64EXT *);
static inline void VertexAttribL3i64vNV(GLuint index1,const GLint64EXT * v1)
{
	static PFNGLVERTEXATTRIBL3I64VNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL3I64VNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL3i64vNV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBL3UI64NVPROC_HPP)(GLuint,GLuint64EXT,GLuint64EXT,GLuint64EXT);
static inline void VertexAttribL3ui64NV(GLuint index1,GLuint64EXT x1,GLuint64EXT y1,GLuint64EXT z1)
{
	static PFNGLVERTEXATTRIBL3UI64NVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL3UI64NVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL3ui64NV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXATTRIBL3UI64VNVPROC_HPP)(GLuint,const GLuint64EXT *);
static inline void VertexAttribL3ui64vNV(GLuint index1,const GLuint64EXT * v1)
{
	static PFNGLVERTEXATTRIBL3UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL3UI64VNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL3ui64vNV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBL4I64NVPROC_HPP)(GLuint,GLint64EXT,GLint64EXT,GLint64EXT,GLint64EXT);
static inline void VertexAttribL4i64NV(GLuint index1,GLint64EXT x1,GLint64EXT y1,GLint64EXT z1,GLint64EXT w1)
{
	static PFNGLVERTEXATTRIBL4I64NVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL4I64NVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL4i64NV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIBL4I64VNVPROC_HPP)(GLuint,const GLint64EXT *);
static inline void VertexAttribL4i64vNV(GLuint index1,const GLint64EXT * v1)
{
	static PFNGLVERTEXATTRIBL4I64VNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL4I64VNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL4i64vNV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBL4UI64NVPROC_HPP)(GLuint,GLuint64EXT,GLuint64EXT,GLuint64EXT,GLuint64EXT);
static inline void VertexAttribL4ui64NV(GLuint index1,GLuint64EXT x1,GLuint64EXT y1,GLuint64EXT z1,GLuint64EXT w1)
{
	static PFNGLVERTEXATTRIBL4UI64NVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL4UI64NVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL4ui64NV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIBL4UI64VNVPROC_HPP)(GLuint,const GLuint64EXT *);
static inline void VertexAttribL4ui64vNV(GLuint index1,const GLuint64EXT * v1)
{
	static PFNGLVERTEXATTRIBL4UI64VNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBL4UI64VNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribL4ui64vNV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBLFORMATNVPROC_HPP)(GLuint,GLint,GLenum,GLsizei);
static inline void VertexAttribLFormatNV(GLuint index1,GLint size1,GLenum type1,GLsizei stride1)
{
	static PFNGLVERTEXATTRIBLFORMATNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBLFORMATNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribLFormatNV","GL_NV_vertex_attrib_integer_64bit"));
	 fn(index1,size1,type1,stride1);
}}
#endif

#ifndef GL_NV_vertex_buffer_unified_memory
#define GL_NV_vertex_buffer_unified_memory
#ifndef GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV
#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E
#endif //GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV
#ifndef GL_ELEMENT_ARRAY_UNIFIED_NV
#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F
#endif //GL_ELEMENT_ARRAY_UNIFIED_NV
#ifndef GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV
#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20
#endif //GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV
#ifndef GL_VERTEX_ARRAY_ADDRESS_NV
#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21
#endif //GL_VERTEX_ARRAY_ADDRESS_NV
#ifndef GL_NORMAL_ARRAY_ADDRESS_NV
#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22
#endif //GL_NORMAL_ARRAY_ADDRESS_NV
#ifndef GL_COLOR_ARRAY_ADDRESS_NV
#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23
#endif //GL_COLOR_ARRAY_ADDRESS_NV
#ifndef GL_INDEX_ARRAY_ADDRESS_NV
#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24
#endif //GL_INDEX_ARRAY_ADDRESS_NV
#ifndef GL_TEXTURE_COORD_ARRAY_ADDRESS_NV
#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25
#endif //GL_TEXTURE_COORD_ARRAY_ADDRESS_NV
#ifndef GL_EDGE_FLAG_ARRAY_ADDRESS_NV
#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26
#endif //GL_EDGE_FLAG_ARRAY_ADDRESS_NV
#ifndef GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV
#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27
#endif //GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV
#ifndef GL_FOG_COORD_ARRAY_ADDRESS_NV
#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28
#endif //GL_FOG_COORD_ARRAY_ADDRESS_NV
#ifndef GL_ELEMENT_ARRAY_ADDRESS_NV
#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29
#endif //GL_ELEMENT_ARRAY_ADDRESS_NV
#ifndef GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV
#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A
#endif //GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV
#ifndef GL_VERTEX_ARRAY_LENGTH_NV
#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B
#endif //GL_VERTEX_ARRAY_LENGTH_NV
#ifndef GL_NORMAL_ARRAY_LENGTH_NV
#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C
#endif //GL_NORMAL_ARRAY_LENGTH_NV
#ifndef GL_COLOR_ARRAY_LENGTH_NV
#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D
#endif //GL_COLOR_ARRAY_LENGTH_NV
#ifndef GL_INDEX_ARRAY_LENGTH_NV
#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E
#endif //GL_INDEX_ARRAY_LENGTH_NV
#ifndef GL_TEXTURE_COORD_ARRAY_LENGTH_NV
#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F
#endif //GL_TEXTURE_COORD_ARRAY_LENGTH_NV
#ifndef GL_EDGE_FLAG_ARRAY_LENGTH_NV
#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30
#endif //GL_EDGE_FLAG_ARRAY_LENGTH_NV
#ifndef GL_SECONDARY_COLOR_ARRAY_LENGTH_NV
#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31
#endif //GL_SECONDARY_COLOR_ARRAY_LENGTH_NV
#ifndef GL_FOG_COORD_ARRAY_LENGTH_NV
#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32
#endif //GL_FOG_COORD_ARRAY_LENGTH_NV
#ifndef GL_ELEMENT_ARRAY_LENGTH_NV
#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33
#endif //GL_ELEMENT_ARRAY_LENGTH_NV
#ifndef GL_DRAW_INDIRECT_UNIFIED_NV
#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40
#endif //GL_DRAW_INDIRECT_UNIFIED_NV
#ifndef GL_DRAW_INDIRECT_ADDRESS_NV
#define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41
#endif //GL_DRAW_INDIRECT_ADDRESS_NV
#ifndef GL_DRAW_INDIRECT_LENGTH_NV
#define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42
#endif //GL_DRAW_INDIRECT_LENGTH_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLBUFFERADDRESSRANGENVPROC_HPP)(GLenum,GLuint,GLuint64EXT,GLsizeiptr);
static inline void BufferAddressRangeNV(GLenum pname1,GLuint index1,GLuint64EXT address1,GLsizeiptr length1)
{
	static PFNGLBUFFERADDRESSRANGENVPROC_HPP fn=reinterpret_cast<PFNGLBUFFERADDRESSRANGENVPROC_HPP>(_impl::_get_proc_address("glBufferAddressRangeNV","GL_NV_vertex_buffer_unified_memory"));
	 fn(pname1,index1,address1,length1);
}
typedef void (*PFNGLCOLORFORMATNVPROC_HPP)(GLint,GLenum,GLsizei);
static inline void ColorFormatNV(GLint size1,GLenum type1,GLsizei stride1)
{
	static PFNGLCOLORFORMATNVPROC_HPP fn=reinterpret_cast<PFNGLCOLORFORMATNVPROC_HPP>(_impl::_get_proc_address("glColorFormatNV","GL_NV_vertex_buffer_unified_memory"));
	 fn(size1,type1,stride1);
}
typedef void (*PFNGLEDGEFLAGFORMATNVPROC_HPP)(GLsizei);
static inline void EdgeFlagFormatNV(GLsizei stride1)
{
	static PFNGLEDGEFLAGFORMATNVPROC_HPP fn=reinterpret_cast<PFNGLEDGEFLAGFORMATNVPROC_HPP>(_impl::_get_proc_address("glEdgeFlagFormatNV","GL_NV_vertex_buffer_unified_memory"));
	 fn(stride1);
}
typedef void (*PFNGLFOGCOORDFORMATNVPROC_HPP)(GLenum,GLsizei);
static inline void FogCoordFormatNV(GLenum type1,GLsizei stride1)
{
	static PFNGLFOGCOORDFORMATNVPROC_HPP fn=reinterpret_cast<PFNGLFOGCOORDFORMATNVPROC_HPP>(_impl::_get_proc_address("glFogCoordFormatNV","GL_NV_vertex_buffer_unified_memory"));
	 fn(type1,stride1);
}
typedef void (*PFNGLGETINTEGERUI64I_VNVPROC_HPP)(GLenum,GLuint,GLuint64EXT *);
static inline void GetIntegerui64i_vNV(GLenum value1,GLuint index1,GLuint64EXT * result1)
{
	static PFNGLGETINTEGERUI64I_VNVPROC_HPP fn=reinterpret_cast<PFNGLGETINTEGERUI64I_VNVPROC_HPP>(_impl::_get_proc_address("glGetIntegerui64i_vNV","GL_NV_vertex_buffer_unified_memory"));
	 fn(value1,index1,result1);
}
typedef void (*PFNGLINDEXFORMATNVPROC_HPP)(GLenum,GLsizei);
static inline void IndexFormatNV(GLenum type1,GLsizei stride1)
{
	static PFNGLINDEXFORMATNVPROC_HPP fn=reinterpret_cast<PFNGLINDEXFORMATNVPROC_HPP>(_impl::_get_proc_address("glIndexFormatNV","GL_NV_vertex_buffer_unified_memory"));
	 fn(type1,stride1);
}
typedef void (*PFNGLNORMALFORMATNVPROC_HPP)(GLenum,GLsizei);
static inline void NormalFormatNV(GLenum type1,GLsizei stride1)
{
	static PFNGLNORMALFORMATNVPROC_HPP fn=reinterpret_cast<PFNGLNORMALFORMATNVPROC_HPP>(_impl::_get_proc_address("glNormalFormatNV","GL_NV_vertex_buffer_unified_memory"));
	 fn(type1,stride1);
}
typedef void (*PFNGLSECONDARYCOLORFORMATNVPROC_HPP)(GLint,GLenum,GLsizei);
static inline void SecondaryColorFormatNV(GLint size1,GLenum type1,GLsizei stride1)
{
	static PFNGLSECONDARYCOLORFORMATNVPROC_HPP fn=reinterpret_cast<PFNGLSECONDARYCOLORFORMATNVPROC_HPP>(_impl::_get_proc_address("glSecondaryColorFormatNV","GL_NV_vertex_buffer_unified_memory"));
	 fn(size1,type1,stride1);
}
typedef void (*PFNGLTEXCOORDFORMATNVPROC_HPP)(GLint,GLenum,GLsizei);
static inline void TexCoordFormatNV(GLint size1,GLenum type1,GLsizei stride1)
{
	static PFNGLTEXCOORDFORMATNVPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORDFORMATNVPROC_HPP>(_impl::_get_proc_address("glTexCoordFormatNV","GL_NV_vertex_buffer_unified_memory"));
	 fn(size1,type1,stride1);
}
typedef void (*PFNGLVERTEXATTRIBFORMATNVPROC_HPP)(GLuint,GLint,GLenum,GLboolean,GLsizei);
static inline void VertexAttribFormatNV(GLuint index1,GLint size1,GLenum type1,GLboolean normalized1,GLsizei stride1)
{
	static PFNGLVERTEXATTRIBFORMATNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBFORMATNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribFormatNV","GL_NV_vertex_buffer_unified_memory"));
	 fn(index1,size1,type1,normalized1,stride1);
}
typedef void (*PFNGLVERTEXATTRIBIFORMATNVPROC_HPP)(GLuint,GLint,GLenum,GLsizei);
static inline void VertexAttribIFormatNV(GLuint index1,GLint size1,GLenum type1,GLsizei stride1)
{
	static PFNGLVERTEXATTRIBIFORMATNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBIFORMATNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribIFormatNV","GL_NV_vertex_buffer_unified_memory"));
	 fn(index1,size1,type1,stride1);
}
typedef void (*PFNGLVERTEXFORMATNVPROC_HPP)(GLint,GLenum,GLsizei);
static inline void VertexFormatNV(GLint size1,GLenum type1,GLsizei stride1)
{
	static PFNGLVERTEXFORMATNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXFORMATNVPROC_HPP>(_impl::_get_proc_address("glVertexFormatNV","GL_NV_vertex_buffer_unified_memory"));
	 fn(size1,type1,stride1);
}}
#endif

#ifndef GL_NV_vertex_program
#define GL_NV_vertex_program
#ifndef GL_VERTEX_PROGRAM_NV
#define GL_VERTEX_PROGRAM_NV 0x8620
#endif //GL_VERTEX_PROGRAM_NV
#ifndef GL_VERTEX_STATE_PROGRAM_NV
#define GL_VERTEX_STATE_PROGRAM_NV 0x8621
#endif //GL_VERTEX_STATE_PROGRAM_NV
#ifndef GL_ATTRIB_ARRAY_SIZE_NV
#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623
#endif //GL_ATTRIB_ARRAY_SIZE_NV
#ifndef GL_ATTRIB_ARRAY_STRIDE_NV
#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624
#endif //GL_ATTRIB_ARRAY_STRIDE_NV
#ifndef GL_ATTRIB_ARRAY_TYPE_NV
#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625
#endif //GL_ATTRIB_ARRAY_TYPE_NV
#ifndef GL_CURRENT_ATTRIB_NV
#define GL_CURRENT_ATTRIB_NV 0x8626
#endif //GL_CURRENT_ATTRIB_NV
#ifndef GL_PROGRAM_LENGTH_NV
#define GL_PROGRAM_LENGTH_NV 0x8627
#endif //GL_PROGRAM_LENGTH_NV
#ifndef GL_PROGRAM_STRING_NV
#define GL_PROGRAM_STRING_NV 0x8628
#endif //GL_PROGRAM_STRING_NV
#ifndef GL_MODELVIEW_PROJECTION_NV
#define GL_MODELVIEW_PROJECTION_NV 0x8629
#endif //GL_MODELVIEW_PROJECTION_NV
#ifndef GL_IDENTITY_NV
#define GL_IDENTITY_NV 0x862A
#endif //GL_IDENTITY_NV
#ifndef GL_INVERSE_NV
#define GL_INVERSE_NV 0x862B
#endif //GL_INVERSE_NV
#ifndef GL_TRANSPOSE_NV
#define GL_TRANSPOSE_NV 0x862C
#endif //GL_TRANSPOSE_NV
#ifndef GL_INVERSE_TRANSPOSE_NV
#define GL_INVERSE_TRANSPOSE_NV 0x862D
#endif //GL_INVERSE_TRANSPOSE_NV
#ifndef GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E
#endif //GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
#ifndef GL_MAX_TRACK_MATRICES_NV
#define GL_MAX_TRACK_MATRICES_NV 0x862F
#endif //GL_MAX_TRACK_MATRICES_NV
#ifndef GL_MATRIX0_NV
#define GL_MATRIX0_NV 0x8630
#endif //GL_MATRIX0_NV
#ifndef GL_MATRIX1_NV
#define GL_MATRIX1_NV 0x8631
#endif //GL_MATRIX1_NV
#ifndef GL_MATRIX2_NV
#define GL_MATRIX2_NV 0x8632
#endif //GL_MATRIX2_NV
#ifndef GL_MATRIX3_NV
#define GL_MATRIX3_NV 0x8633
#endif //GL_MATRIX3_NV
#ifndef GL_MATRIX4_NV
#define GL_MATRIX4_NV 0x8634
#endif //GL_MATRIX4_NV
#ifndef GL_MATRIX5_NV
#define GL_MATRIX5_NV 0x8635
#endif //GL_MATRIX5_NV
#ifndef GL_MATRIX6_NV
#define GL_MATRIX6_NV 0x8636
#endif //GL_MATRIX6_NV
#ifndef GL_MATRIX7_NV
#define GL_MATRIX7_NV 0x8637
#endif //GL_MATRIX7_NV
#ifndef GL_CURRENT_MATRIX_STACK_DEPTH_NV
#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640
#endif //GL_CURRENT_MATRIX_STACK_DEPTH_NV
#ifndef GL_CURRENT_MATRIX_NV
#define GL_CURRENT_MATRIX_NV 0x8641
#endif //GL_CURRENT_MATRIX_NV
#ifndef GL_VERTEX_PROGRAM_POINT_SIZE_NV
#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642
#endif //GL_VERTEX_PROGRAM_POINT_SIZE_NV
#ifndef GL_VERTEX_PROGRAM_TWO_SIDE_NV
#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643
#endif //GL_VERTEX_PROGRAM_TWO_SIDE_NV
#ifndef GL_PROGRAM_PARAMETER_NV
#define GL_PROGRAM_PARAMETER_NV 0x8644
#endif //GL_PROGRAM_PARAMETER_NV
#ifndef GL_ATTRIB_ARRAY_POINTER_NV
#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645
#endif //GL_ATTRIB_ARRAY_POINTER_NV
#ifndef GL_PROGRAM_TARGET_NV
#define GL_PROGRAM_TARGET_NV 0x8646
#endif //GL_PROGRAM_TARGET_NV
#ifndef GL_PROGRAM_RESIDENT_NV
#define GL_PROGRAM_RESIDENT_NV 0x8647
#endif //GL_PROGRAM_RESIDENT_NV
#ifndef GL_TRACK_MATRIX_NV
#define GL_TRACK_MATRIX_NV 0x8648
#endif //GL_TRACK_MATRIX_NV
#ifndef GL_TRACK_MATRIX_TRANSFORM_NV
#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649
#endif //GL_TRACK_MATRIX_TRANSFORM_NV
#ifndef GL_VERTEX_PROGRAM_BINDING_NV
#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A
#endif //GL_VERTEX_PROGRAM_BINDING_NV
#ifndef GL_PROGRAM_ERROR_POSITION_NV
#define GL_PROGRAM_ERROR_POSITION_NV 0x864B
#endif //GL_PROGRAM_ERROR_POSITION_NV
#ifndef GL_VERTEX_ATTRIB_ARRAY0_NV
#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650
#endif //GL_VERTEX_ATTRIB_ARRAY0_NV
#ifndef GL_VERTEX_ATTRIB_ARRAY1_NV
#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651
#endif //GL_VERTEX_ATTRIB_ARRAY1_NV
#ifndef GL_VERTEX_ATTRIB_ARRAY2_NV
#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652
#endif //GL_VERTEX_ATTRIB_ARRAY2_NV
#ifndef GL_VERTEX_ATTRIB_ARRAY3_NV
#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653
#endif //GL_VERTEX_ATTRIB_ARRAY3_NV
#ifndef GL_VERTEX_ATTRIB_ARRAY4_NV
#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654
#endif //GL_VERTEX_ATTRIB_ARRAY4_NV
#ifndef GL_VERTEX_ATTRIB_ARRAY5_NV
#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655
#endif //GL_VERTEX_ATTRIB_ARRAY5_NV
#ifndef GL_VERTEX_ATTRIB_ARRAY6_NV
#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656
#endif //GL_VERTEX_ATTRIB_ARRAY6_NV
#ifndef GL_VERTEX_ATTRIB_ARRAY7_NV
#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657
#endif //GL_VERTEX_ATTRIB_ARRAY7_NV
#ifndef GL_VERTEX_ATTRIB_ARRAY8_NV
#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658
#endif //GL_VERTEX_ATTRIB_ARRAY8_NV
#ifndef GL_VERTEX_ATTRIB_ARRAY9_NV
#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659
#endif //GL_VERTEX_ATTRIB_ARRAY9_NV
#ifndef GL_VERTEX_ATTRIB_ARRAY10_NV
#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A
#endif //GL_VERTEX_ATTRIB_ARRAY10_NV
#ifndef GL_VERTEX_ATTRIB_ARRAY11_NV
#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B
#endif //GL_VERTEX_ATTRIB_ARRAY11_NV
#ifndef GL_VERTEX_ATTRIB_ARRAY12_NV
#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C
#endif //GL_VERTEX_ATTRIB_ARRAY12_NV
#ifndef GL_VERTEX_ATTRIB_ARRAY13_NV
#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D
#endif //GL_VERTEX_ATTRIB_ARRAY13_NV
#ifndef GL_VERTEX_ATTRIB_ARRAY14_NV
#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E
#endif //GL_VERTEX_ATTRIB_ARRAY14_NV
#ifndef GL_VERTEX_ATTRIB_ARRAY15_NV
#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F
#endif //GL_VERTEX_ATTRIB_ARRAY15_NV
#ifndef GL_MAP1_VERTEX_ATTRIB0_4_NV
#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660
#endif //GL_MAP1_VERTEX_ATTRIB0_4_NV
#ifndef GL_MAP1_VERTEX_ATTRIB1_4_NV
#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661
#endif //GL_MAP1_VERTEX_ATTRIB1_4_NV
#ifndef GL_MAP1_VERTEX_ATTRIB2_4_NV
#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662
#endif //GL_MAP1_VERTEX_ATTRIB2_4_NV
#ifndef GL_MAP1_VERTEX_ATTRIB3_4_NV
#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663
#endif //GL_MAP1_VERTEX_ATTRIB3_4_NV
#ifndef GL_MAP1_VERTEX_ATTRIB4_4_NV
#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664
#endif //GL_MAP1_VERTEX_ATTRIB4_4_NV
#ifndef GL_MAP1_VERTEX_ATTRIB5_4_NV
#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665
#endif //GL_MAP1_VERTEX_ATTRIB5_4_NV
#ifndef GL_MAP1_VERTEX_ATTRIB6_4_NV
#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666
#endif //GL_MAP1_VERTEX_ATTRIB6_4_NV
#ifndef GL_MAP1_VERTEX_ATTRIB7_4_NV
#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667
#endif //GL_MAP1_VERTEX_ATTRIB7_4_NV
#ifndef GL_MAP1_VERTEX_ATTRIB8_4_NV
#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668
#endif //GL_MAP1_VERTEX_ATTRIB8_4_NV
#ifndef GL_MAP1_VERTEX_ATTRIB9_4_NV
#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669
#endif //GL_MAP1_VERTEX_ATTRIB9_4_NV
#ifndef GL_MAP1_VERTEX_ATTRIB10_4_NV
#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A
#endif //GL_MAP1_VERTEX_ATTRIB10_4_NV
#ifndef GL_MAP1_VERTEX_ATTRIB11_4_NV
#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B
#endif //GL_MAP1_VERTEX_ATTRIB11_4_NV
#ifndef GL_MAP1_VERTEX_ATTRIB12_4_NV
#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C
#endif //GL_MAP1_VERTEX_ATTRIB12_4_NV
#ifndef GL_MAP1_VERTEX_ATTRIB13_4_NV
#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D
#endif //GL_MAP1_VERTEX_ATTRIB13_4_NV
#ifndef GL_MAP1_VERTEX_ATTRIB14_4_NV
#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E
#endif //GL_MAP1_VERTEX_ATTRIB14_4_NV
#ifndef GL_MAP1_VERTEX_ATTRIB15_4_NV
#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F
#endif //GL_MAP1_VERTEX_ATTRIB15_4_NV
#ifndef GL_MAP2_VERTEX_ATTRIB0_4_NV
#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670
#endif //GL_MAP2_VERTEX_ATTRIB0_4_NV
#ifndef GL_MAP2_VERTEX_ATTRIB1_4_NV
#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671
#endif //GL_MAP2_VERTEX_ATTRIB1_4_NV
#ifndef GL_MAP2_VERTEX_ATTRIB2_4_NV
#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672
#endif //GL_MAP2_VERTEX_ATTRIB2_4_NV
#ifndef GL_MAP2_VERTEX_ATTRIB3_4_NV
#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673
#endif //GL_MAP2_VERTEX_ATTRIB3_4_NV
#ifndef GL_MAP2_VERTEX_ATTRIB4_4_NV
#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674
#endif //GL_MAP2_VERTEX_ATTRIB4_4_NV
#ifndef GL_MAP2_VERTEX_ATTRIB5_4_NV
#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675
#endif //GL_MAP2_VERTEX_ATTRIB5_4_NV
#ifndef GL_MAP2_VERTEX_ATTRIB6_4_NV
#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676
#endif //GL_MAP2_VERTEX_ATTRIB6_4_NV
#ifndef GL_MAP2_VERTEX_ATTRIB7_4_NV
#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677
#endif //GL_MAP2_VERTEX_ATTRIB7_4_NV
#ifndef GL_MAP2_VERTEX_ATTRIB8_4_NV
#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678
#endif //GL_MAP2_VERTEX_ATTRIB8_4_NV
#ifndef GL_MAP2_VERTEX_ATTRIB9_4_NV
#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679
#endif //GL_MAP2_VERTEX_ATTRIB9_4_NV
#ifndef GL_MAP2_VERTEX_ATTRIB10_4_NV
#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A
#endif //GL_MAP2_VERTEX_ATTRIB10_4_NV
#ifndef GL_MAP2_VERTEX_ATTRIB11_4_NV
#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B
#endif //GL_MAP2_VERTEX_ATTRIB11_4_NV
#ifndef GL_MAP2_VERTEX_ATTRIB12_4_NV
#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C
#endif //GL_MAP2_VERTEX_ATTRIB12_4_NV
#ifndef GL_MAP2_VERTEX_ATTRIB13_4_NV
#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D
#endif //GL_MAP2_VERTEX_ATTRIB13_4_NV
#ifndef GL_MAP2_VERTEX_ATTRIB14_4_NV
#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E
#endif //GL_MAP2_VERTEX_ATTRIB14_4_NV
#ifndef GL_MAP2_VERTEX_ATTRIB15_4_NV
#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F
#endif //GL_MAP2_VERTEX_ATTRIB15_4_NV
extern "C" {
}
namespace gl{

typedef GLboolean (*PFNGLAREPROGRAMSRESIDENTNVPROC_HPP)(GLsizei,const GLuint *,GLboolean *);
static inline GLboolean AreProgramsResidentNV(GLsizei n1,const GLuint * programs1,GLboolean * residences1)
{
	static PFNGLAREPROGRAMSRESIDENTNVPROC_HPP fn=reinterpret_cast<PFNGLAREPROGRAMSRESIDENTNVPROC_HPP>(_impl::_get_proc_address("glAreProgramsResidentNV","GL_NV_vertex_program"));
	return fn(n1,programs1,residences1);
}
typedef void (*PFNGLBINDPROGRAMNVPROC_HPP)(GLenum,GLuint);
static inline void BindProgramNV(GLenum target1,GLuint id1)
{
	static PFNGLBINDPROGRAMNVPROC_HPP fn=reinterpret_cast<PFNGLBINDPROGRAMNVPROC_HPP>(_impl::_get_proc_address("glBindProgramNV","GL_NV_vertex_program"));
	 fn(target1,id1);
}
typedef void (*PFNGLDELETEPROGRAMSNVPROC_HPP)(GLsizei,const GLuint *);
static inline void DeleteProgramsNV(GLsizei n1,const GLuint * programs1)
{
	static PFNGLDELETEPROGRAMSNVPROC_HPP fn=reinterpret_cast<PFNGLDELETEPROGRAMSNVPROC_HPP>(_impl::_get_proc_address("glDeleteProgramsNV","GL_NV_vertex_program"));
	 fn(n1,programs1);
}
typedef void (*PFNGLEXECUTEPROGRAMNVPROC_HPP)(GLenum,GLuint,const GLfloat *);
static inline void ExecuteProgramNV(GLenum target1,GLuint id1,const GLfloat * params1)
{
	static PFNGLEXECUTEPROGRAMNVPROC_HPP fn=reinterpret_cast<PFNGLEXECUTEPROGRAMNVPROC_HPP>(_impl::_get_proc_address("glExecuteProgramNV","GL_NV_vertex_program"));
	 fn(target1,id1,params1);
}
typedef void (*PFNGLGENPROGRAMSNVPROC_HPP)(GLsizei,GLuint *);
static inline void GenProgramsNV(GLsizei n1,GLuint * programs1)
{
	static PFNGLGENPROGRAMSNVPROC_HPP fn=reinterpret_cast<PFNGLGENPROGRAMSNVPROC_HPP>(_impl::_get_proc_address("glGenProgramsNV","GL_NV_vertex_program"));
	 fn(n1,programs1);
}
typedef void (*PFNGLGETPROGRAMPARAMETERDVNVPROC_HPP)(GLenum,GLuint,GLenum,GLdouble *);
static inline void GetProgramParameterdvNV(GLenum target1,GLuint index1,GLenum pname1,GLdouble * params1)
{
	static PFNGLGETPROGRAMPARAMETERDVNVPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMPARAMETERDVNVPROC_HPP>(_impl::_get_proc_address("glGetProgramParameterdvNV","GL_NV_vertex_program"));
	 fn(target1,index1,pname1,params1);
}
typedef void (*PFNGLGETPROGRAMPARAMETERFVNVPROC_HPP)(GLenum,GLuint,GLenum,GLfloat *);
static inline void GetProgramParameterfvNV(GLenum target1,GLuint index1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETPROGRAMPARAMETERFVNVPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMPARAMETERFVNVPROC_HPP>(_impl::_get_proc_address("glGetProgramParameterfvNV","GL_NV_vertex_program"));
	 fn(target1,index1,pname1,params1);
}
typedef void (*PFNGLGETPROGRAMSTRINGNVPROC_HPP)(GLuint,GLenum,GLubyte *);
static inline void GetProgramStringNV(GLuint id1,GLenum pname1,GLubyte * program1)
{
	static PFNGLGETPROGRAMSTRINGNVPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMSTRINGNVPROC_HPP>(_impl::_get_proc_address("glGetProgramStringNV","GL_NV_vertex_program"));
	 fn(id1,pname1,program1);
}
typedef void (*PFNGLGETPROGRAMIVNVPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetProgramivNV(GLuint id1,GLenum pname1,GLint * params1)
{
	static PFNGLGETPROGRAMIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETPROGRAMIVNVPROC_HPP>(_impl::_get_proc_address("glGetProgramivNV","GL_NV_vertex_program"));
	 fn(id1,pname1,params1);
}
typedef void (*PFNGLGETTRACKMATRIXIVNVPROC_HPP)(GLenum,GLuint,GLenum,GLint *);
static inline void GetTrackMatrixivNV(GLenum target1,GLuint address1,GLenum pname1,GLint * params1)
{
	static PFNGLGETTRACKMATRIXIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETTRACKMATRIXIVNVPROC_HPP>(_impl::_get_proc_address("glGetTrackMatrixivNV","GL_NV_vertex_program"));
	 fn(target1,address1,pname1,params1);
}
typedef void (*PFNGLGETVERTEXATTRIBPOINTERVNVPROC_HPP)(GLuint,GLenum,void **);
static inline void GetVertexAttribPointervNV(GLuint index1,GLenum pname1,void ** pointer1)
{
	static PFNGLGETVERTEXATTRIBPOINTERVNVPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBPOINTERVNVPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribPointervNV","GL_NV_vertex_program"));
	 fn(index1,pname1,pointer1);
}
typedef void (*PFNGLGETVERTEXATTRIBDVNVPROC_HPP)(GLuint,GLenum,GLdouble *);
static inline void GetVertexAttribdvNV(GLuint index1,GLenum pname1,GLdouble * params1)
{
	static PFNGLGETVERTEXATTRIBDVNVPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBDVNVPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribdvNV","GL_NV_vertex_program"));
	 fn(index1,pname1,params1);
}
typedef void (*PFNGLGETVERTEXATTRIBFVNVPROC_HPP)(GLuint,GLenum,GLfloat *);
static inline void GetVertexAttribfvNV(GLuint index1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETVERTEXATTRIBFVNVPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBFVNVPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribfvNV","GL_NV_vertex_program"));
	 fn(index1,pname1,params1);
}
typedef void (*PFNGLGETVERTEXATTRIBIVNVPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetVertexAttribivNV(GLuint index1,GLenum pname1,GLint * params1)
{
	static PFNGLGETVERTEXATTRIBIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBIVNVPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribivNV","GL_NV_vertex_program"));
	 fn(index1,pname1,params1);
}
typedef GLboolean (*PFNGLISPROGRAMNVPROC_HPP)(GLuint);
static inline GLboolean IsProgramNV(GLuint id1)
{
	static PFNGLISPROGRAMNVPROC_HPP fn=reinterpret_cast<PFNGLISPROGRAMNVPROC_HPP>(_impl::_get_proc_address("glIsProgramNV","GL_NV_vertex_program"));
	return fn(id1);
}
typedef void (*PFNGLLOADPROGRAMNVPROC_HPP)(GLenum,GLuint,GLsizei,const GLubyte *);
static inline void LoadProgramNV(GLenum target1,GLuint id1,GLsizei len1,const GLubyte * program1)
{
	static PFNGLLOADPROGRAMNVPROC_HPP fn=reinterpret_cast<PFNGLLOADPROGRAMNVPROC_HPP>(_impl::_get_proc_address("glLoadProgramNV","GL_NV_vertex_program"));
	 fn(target1,id1,len1,program1);
}
typedef void (*PFNGLPROGRAMPARAMETER4DNVPROC_HPP)(GLenum,GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void ProgramParameter4dNV(GLenum target1,GLuint index1,GLdouble x1,GLdouble y1,GLdouble z1,GLdouble w1)
{
	static PFNGLPROGRAMPARAMETER4DNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMPARAMETER4DNVPROC_HPP>(_impl::_get_proc_address("glProgramParameter4dNV","GL_NV_vertex_program"));
	 fn(target1,index1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMPARAMETER4DVNVPROC_HPP)(GLenum,GLuint,const GLdouble *);
static inline void ProgramParameter4dvNV(GLenum target1,GLuint index1,const GLdouble * v1)
{
	static PFNGLPROGRAMPARAMETER4DVNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMPARAMETER4DVNVPROC_HPP>(_impl::_get_proc_address("glProgramParameter4dvNV","GL_NV_vertex_program"));
	 fn(target1,index1,v1);
}
typedef void (*PFNGLPROGRAMPARAMETER4FNVPROC_HPP)(GLenum,GLuint,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void ProgramParameter4fNV(GLenum target1,GLuint index1,GLfloat x1,GLfloat y1,GLfloat z1,GLfloat w1)
{
	static PFNGLPROGRAMPARAMETER4FNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMPARAMETER4FNVPROC_HPP>(_impl::_get_proc_address("glProgramParameter4fNV","GL_NV_vertex_program"));
	 fn(target1,index1,x1,y1,z1,w1);
}
typedef void (*PFNGLPROGRAMPARAMETER4FVNVPROC_HPP)(GLenum,GLuint,const GLfloat *);
static inline void ProgramParameter4fvNV(GLenum target1,GLuint index1,const GLfloat * v1)
{
	static PFNGLPROGRAMPARAMETER4FVNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMPARAMETER4FVNVPROC_HPP>(_impl::_get_proc_address("glProgramParameter4fvNV","GL_NV_vertex_program"));
	 fn(target1,index1,v1);
}
typedef void (*PFNGLPROGRAMPARAMETERS4DVNVPROC_HPP)(GLenum,GLuint,GLsizei,const GLdouble *);
static inline void ProgramParameters4dvNV(GLenum target1,GLuint index1,GLsizei count1,const GLdouble * v1)
{
	static PFNGLPROGRAMPARAMETERS4DVNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMPARAMETERS4DVNVPROC_HPP>(_impl::_get_proc_address("glProgramParameters4dvNV","GL_NV_vertex_program"));
	 fn(target1,index1,count1,v1);
}
typedef void (*PFNGLPROGRAMPARAMETERS4FVNVPROC_HPP)(GLenum,GLuint,GLsizei,const GLfloat *);
static inline void ProgramParameters4fvNV(GLenum target1,GLuint index1,GLsizei count1,const GLfloat * v1)
{
	static PFNGLPROGRAMPARAMETERS4FVNVPROC_HPP fn=reinterpret_cast<PFNGLPROGRAMPARAMETERS4FVNVPROC_HPP>(_impl::_get_proc_address("glProgramParameters4fvNV","GL_NV_vertex_program"));
	 fn(target1,index1,count1,v1);
}
typedef void (*PFNGLREQUESTRESIDENTPROGRAMSNVPROC_HPP)(GLsizei,const GLuint *);
static inline void RequestResidentProgramsNV(GLsizei n1,const GLuint * programs1)
{
	static PFNGLREQUESTRESIDENTPROGRAMSNVPROC_HPP fn=reinterpret_cast<PFNGLREQUESTRESIDENTPROGRAMSNVPROC_HPP>(_impl::_get_proc_address("glRequestResidentProgramsNV","GL_NV_vertex_program"));
	 fn(n1,programs1);
}
typedef void (*PFNGLTRACKMATRIXNVPROC_HPP)(GLenum,GLuint,GLenum,GLenum);
static inline void TrackMatrixNV(GLenum target1,GLuint address1,GLenum matrix1,GLenum transform1)
{
	static PFNGLTRACKMATRIXNVPROC_HPP fn=reinterpret_cast<PFNGLTRACKMATRIXNVPROC_HPP>(_impl::_get_proc_address("glTrackMatrixNV","GL_NV_vertex_program"));
	 fn(target1,address1,matrix1,transform1);
}
typedef void (*PFNGLVERTEXATTRIB1DNVPROC_HPP)(GLuint,GLdouble);
static inline void VertexAttrib1dNV(GLuint index1,GLdouble x1)
{
	static PFNGLVERTEXATTRIB1DNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1DNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1dNV","GL_NV_vertex_program"));
	 fn(index1,x1);
}
typedef void (*PFNGLVERTEXATTRIB1DVNVPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttrib1dvNV(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIB1DVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1DVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1dvNV","GL_NV_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB1FNVPROC_HPP)(GLuint,GLfloat);
static inline void VertexAttrib1fNV(GLuint index1,GLfloat x1)
{
	static PFNGLVERTEXATTRIB1FNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1FNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1fNV","GL_NV_vertex_program"));
	 fn(index1,x1);
}
typedef void (*PFNGLVERTEXATTRIB1FVNVPROC_HPP)(GLuint,const GLfloat *);
static inline void VertexAttrib1fvNV(GLuint index1,const GLfloat * v1)
{
	static PFNGLVERTEXATTRIB1FVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1FVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1fvNV","GL_NV_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB1SNVPROC_HPP)(GLuint,GLshort);
static inline void VertexAttrib1sNV(GLuint index1,GLshort x1)
{
	static PFNGLVERTEXATTRIB1SNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1SNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1sNV","GL_NV_vertex_program"));
	 fn(index1,x1);
}
typedef void (*PFNGLVERTEXATTRIB1SVNVPROC_HPP)(GLuint,const GLshort *);
static inline void VertexAttrib1svNV(GLuint index1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIB1SVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB1SVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib1svNV","GL_NV_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB2DNVPROC_HPP)(GLuint,GLdouble,GLdouble);
static inline void VertexAttrib2dNV(GLuint index1,GLdouble x1,GLdouble y1)
{
	static PFNGLVERTEXATTRIB2DNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2DNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2dNV","GL_NV_vertex_program"));
	 fn(index1,x1,y1);
}
typedef void (*PFNGLVERTEXATTRIB2DVNVPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttrib2dvNV(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIB2DVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2DVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2dvNV","GL_NV_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB2FNVPROC_HPP)(GLuint,GLfloat,GLfloat);
static inline void VertexAttrib2fNV(GLuint index1,GLfloat x1,GLfloat y1)
{
	static PFNGLVERTEXATTRIB2FNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2FNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2fNV","GL_NV_vertex_program"));
	 fn(index1,x1,y1);
}
typedef void (*PFNGLVERTEXATTRIB2FVNVPROC_HPP)(GLuint,const GLfloat *);
static inline void VertexAttrib2fvNV(GLuint index1,const GLfloat * v1)
{
	static PFNGLVERTEXATTRIB2FVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2FVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2fvNV","GL_NV_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB2SNVPROC_HPP)(GLuint,GLshort,GLshort);
static inline void VertexAttrib2sNV(GLuint index1,GLshort x1,GLshort y1)
{
	static PFNGLVERTEXATTRIB2SNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2SNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2sNV","GL_NV_vertex_program"));
	 fn(index1,x1,y1);
}
typedef void (*PFNGLVERTEXATTRIB2SVNVPROC_HPP)(GLuint,const GLshort *);
static inline void VertexAttrib2svNV(GLuint index1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIB2SVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB2SVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib2svNV","GL_NV_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB3DNVPROC_HPP)(GLuint,GLdouble,GLdouble,GLdouble);
static inline void VertexAttrib3dNV(GLuint index1,GLdouble x1,GLdouble y1,GLdouble z1)
{
	static PFNGLVERTEXATTRIB3DNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3DNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3dNV","GL_NV_vertex_program"));
	 fn(index1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXATTRIB3DVNVPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttrib3dvNV(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIB3DVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3DVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3dvNV","GL_NV_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB3FNVPROC_HPP)(GLuint,GLfloat,GLfloat,GLfloat);
static inline void VertexAttrib3fNV(GLuint index1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLVERTEXATTRIB3FNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3FNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3fNV","GL_NV_vertex_program"));
	 fn(index1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXATTRIB3FVNVPROC_HPP)(GLuint,const GLfloat *);
static inline void VertexAttrib3fvNV(GLuint index1,const GLfloat * v1)
{
	static PFNGLVERTEXATTRIB3FVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3FVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3fvNV","GL_NV_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB3SNVPROC_HPP)(GLuint,GLshort,GLshort,GLshort);
static inline void VertexAttrib3sNV(GLuint index1,GLshort x1,GLshort y1,GLshort z1)
{
	static PFNGLVERTEXATTRIB3SNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3SNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3sNV","GL_NV_vertex_program"));
	 fn(index1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXATTRIB3SVNVPROC_HPP)(GLuint,const GLshort *);
static inline void VertexAttrib3svNV(GLuint index1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIB3SVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB3SVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib3svNV","GL_NV_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4DNVPROC_HPP)(GLuint,GLdouble,GLdouble,GLdouble,GLdouble);
static inline void VertexAttrib4dNV(GLuint index1,GLdouble x1,GLdouble y1,GLdouble z1,GLdouble w1)
{
	static PFNGLVERTEXATTRIB4DNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4DNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4dNV","GL_NV_vertex_program"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIB4DVNVPROC_HPP)(GLuint,const GLdouble *);
static inline void VertexAttrib4dvNV(GLuint index1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIB4DVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4DVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4dvNV","GL_NV_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4FNVPROC_HPP)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void VertexAttrib4fNV(GLuint index1,GLfloat x1,GLfloat y1,GLfloat z1,GLfloat w1)
{
	static PFNGLVERTEXATTRIB4FNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4FNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4fNV","GL_NV_vertex_program"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIB4FVNVPROC_HPP)(GLuint,const GLfloat *);
static inline void VertexAttrib4fvNV(GLuint index1,const GLfloat * v1)
{
	static PFNGLVERTEXATTRIB4FVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4FVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4fvNV","GL_NV_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4SNVPROC_HPP)(GLuint,GLshort,GLshort,GLshort,GLshort);
static inline void VertexAttrib4sNV(GLuint index1,GLshort x1,GLshort y1,GLshort z1,GLshort w1)
{
	static PFNGLVERTEXATTRIB4SNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4SNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4sNV","GL_NV_vertex_program"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIB4SVNVPROC_HPP)(GLuint,const GLshort *);
static inline void VertexAttrib4svNV(GLuint index1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIB4SVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4SVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4svNV","GL_NV_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIB4UBNVPROC_HPP)(GLuint,GLubyte,GLubyte,GLubyte,GLubyte);
static inline void VertexAttrib4ubNV(GLuint index1,GLubyte x1,GLubyte y1,GLubyte z1,GLubyte w1)
{
	static PFNGLVERTEXATTRIB4UBNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4UBNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4ubNV","GL_NV_vertex_program"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIB4UBVNVPROC_HPP)(GLuint,const GLubyte *);
static inline void VertexAttrib4ubvNV(GLuint index1,const GLubyte * v1)
{
	static PFNGLVERTEXATTRIB4UBVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIB4UBVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttrib4ubvNV","GL_NV_vertex_program"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBPOINTERNVPROC_HPP)(GLuint,GLint,GLenum,GLsizei,const void *);
static inline void VertexAttribPointerNV(GLuint index1,GLint fsize1,GLenum type1,GLsizei stride1,const void * pointer1)
{
	static PFNGLVERTEXATTRIBPOINTERNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBPOINTERNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribPointerNV","GL_NV_vertex_program"));
	 fn(index1,fsize1,type1,stride1,pointer1);
}
typedef void (*PFNGLVERTEXATTRIBS1DVNVPROC_HPP)(GLuint,GLsizei,const GLdouble *);
static inline void VertexAttribs1dvNV(GLuint index1,GLsizei count1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIBS1DVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBS1DVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribs1dvNV","GL_NV_vertex_program"));
	 fn(index1,count1,v1);
}
typedef void (*PFNGLVERTEXATTRIBS1FVNVPROC_HPP)(GLuint,GLsizei,const GLfloat *);
static inline void VertexAttribs1fvNV(GLuint index1,GLsizei count1,const GLfloat * v1)
{
	static PFNGLVERTEXATTRIBS1FVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBS1FVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribs1fvNV","GL_NV_vertex_program"));
	 fn(index1,count1,v1);
}
typedef void (*PFNGLVERTEXATTRIBS1SVNVPROC_HPP)(GLuint,GLsizei,const GLshort *);
static inline void VertexAttribs1svNV(GLuint index1,GLsizei count1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIBS1SVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBS1SVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribs1svNV","GL_NV_vertex_program"));
	 fn(index1,count1,v1);
}
typedef void (*PFNGLVERTEXATTRIBS2DVNVPROC_HPP)(GLuint,GLsizei,const GLdouble *);
static inline void VertexAttribs2dvNV(GLuint index1,GLsizei count1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIBS2DVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBS2DVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribs2dvNV","GL_NV_vertex_program"));
	 fn(index1,count1,v1);
}
typedef void (*PFNGLVERTEXATTRIBS2FVNVPROC_HPP)(GLuint,GLsizei,const GLfloat *);
static inline void VertexAttribs2fvNV(GLuint index1,GLsizei count1,const GLfloat * v1)
{
	static PFNGLVERTEXATTRIBS2FVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBS2FVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribs2fvNV","GL_NV_vertex_program"));
	 fn(index1,count1,v1);
}
typedef void (*PFNGLVERTEXATTRIBS2SVNVPROC_HPP)(GLuint,GLsizei,const GLshort *);
static inline void VertexAttribs2svNV(GLuint index1,GLsizei count1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIBS2SVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBS2SVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribs2svNV","GL_NV_vertex_program"));
	 fn(index1,count1,v1);
}
typedef void (*PFNGLVERTEXATTRIBS3DVNVPROC_HPP)(GLuint,GLsizei,const GLdouble *);
static inline void VertexAttribs3dvNV(GLuint index1,GLsizei count1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIBS3DVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBS3DVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribs3dvNV","GL_NV_vertex_program"));
	 fn(index1,count1,v1);
}
typedef void (*PFNGLVERTEXATTRIBS3FVNVPROC_HPP)(GLuint,GLsizei,const GLfloat *);
static inline void VertexAttribs3fvNV(GLuint index1,GLsizei count1,const GLfloat * v1)
{
	static PFNGLVERTEXATTRIBS3FVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBS3FVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribs3fvNV","GL_NV_vertex_program"));
	 fn(index1,count1,v1);
}
typedef void (*PFNGLVERTEXATTRIBS3SVNVPROC_HPP)(GLuint,GLsizei,const GLshort *);
static inline void VertexAttribs3svNV(GLuint index1,GLsizei count1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIBS3SVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBS3SVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribs3svNV","GL_NV_vertex_program"));
	 fn(index1,count1,v1);
}
typedef void (*PFNGLVERTEXATTRIBS4DVNVPROC_HPP)(GLuint,GLsizei,const GLdouble *);
static inline void VertexAttribs4dvNV(GLuint index1,GLsizei count1,const GLdouble * v1)
{
	static PFNGLVERTEXATTRIBS4DVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBS4DVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribs4dvNV","GL_NV_vertex_program"));
	 fn(index1,count1,v1);
}
typedef void (*PFNGLVERTEXATTRIBS4FVNVPROC_HPP)(GLuint,GLsizei,const GLfloat *);
static inline void VertexAttribs4fvNV(GLuint index1,GLsizei count1,const GLfloat * v1)
{
	static PFNGLVERTEXATTRIBS4FVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBS4FVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribs4fvNV","GL_NV_vertex_program"));
	 fn(index1,count1,v1);
}
typedef void (*PFNGLVERTEXATTRIBS4SVNVPROC_HPP)(GLuint,GLsizei,const GLshort *);
static inline void VertexAttribs4svNV(GLuint index1,GLsizei count1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIBS4SVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBS4SVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribs4svNV","GL_NV_vertex_program"));
	 fn(index1,count1,v1);
}
typedef void (*PFNGLVERTEXATTRIBS4UBVNVPROC_HPP)(GLuint,GLsizei,const GLubyte *);
static inline void VertexAttribs4ubvNV(GLuint index1,GLsizei count1,const GLubyte * v1)
{
	static PFNGLVERTEXATTRIBS4UBVNVPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBS4UBVNVPROC_HPP>(_impl::_get_proc_address("glVertexAttribs4ubvNV","GL_NV_vertex_program"));
	 fn(index1,count1,v1);
}}
#endif

#ifndef GL_NV_vertex_program1_1
#define GL_NV_vertex_program1_1
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_vertex_program2
#define GL_NV_vertex_program2
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_vertex_program2_option
#define GL_NV_vertex_program2_option
#ifndef GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV
#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4
#endif //GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV
#ifndef GL_MAX_PROGRAM_CALL_DEPTH_NV
#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5
#endif //GL_MAX_PROGRAM_CALL_DEPTH_NV
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_vertex_program3
#define GL_NV_vertex_program3
#ifndef GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
#endif //GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_NV_vertex_program4
#define GL_NV_vertex_program4
#ifndef GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV
#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD
#endif //GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETVERTEXATTRIBIIVEXTPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetVertexAttribIivEXT(GLuint index1,GLenum pname1,GLint * params1)
{
	static PFNGLGETVERTEXATTRIBIIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBIIVEXTPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribIivEXT","GL_NV_vertex_program4"));
	 fn(index1,pname1,params1);
}
typedef void (*PFNGLGETVERTEXATTRIBIUIVEXTPROC_HPP)(GLuint,GLenum,GLuint *);
static inline void GetVertexAttribIuivEXT(GLuint index1,GLenum pname1,GLuint * params1)
{
	static PFNGLGETVERTEXATTRIBIUIVEXTPROC_HPP fn=reinterpret_cast<PFNGLGETVERTEXATTRIBIUIVEXTPROC_HPP>(_impl::_get_proc_address("glGetVertexAttribIuivEXT","GL_NV_vertex_program4"));
	 fn(index1,pname1,params1);
}
typedef void (*PFNGLVERTEXATTRIBI1IEXTPROC_HPP)(GLuint,GLint);
static inline void VertexAttribI1iEXT(GLuint index1,GLint x1)
{
	static PFNGLVERTEXATTRIBI1IEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI1IEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI1iEXT","GL_NV_vertex_program4"));
	 fn(index1,x1);
}
typedef void (*PFNGLVERTEXATTRIBI1IVEXTPROC_HPP)(GLuint,const GLint *);
static inline void VertexAttribI1ivEXT(GLuint index1,const GLint * v1)
{
	static PFNGLVERTEXATTRIBI1IVEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI1IVEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI1ivEXT","GL_NV_vertex_program4"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBI1UIEXTPROC_HPP)(GLuint,GLuint);
static inline void VertexAttribI1uiEXT(GLuint index1,GLuint x1)
{
	static PFNGLVERTEXATTRIBI1UIEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI1UIEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI1uiEXT","GL_NV_vertex_program4"));
	 fn(index1,x1);
}
typedef void (*PFNGLVERTEXATTRIBI1UIVEXTPROC_HPP)(GLuint,const GLuint *);
static inline void VertexAttribI1uivEXT(GLuint index1,const GLuint * v1)
{
	static PFNGLVERTEXATTRIBI1UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI1UIVEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI1uivEXT","GL_NV_vertex_program4"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBI2IEXTPROC_HPP)(GLuint,GLint,GLint);
static inline void VertexAttribI2iEXT(GLuint index1,GLint x1,GLint y1)
{
	static PFNGLVERTEXATTRIBI2IEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI2IEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI2iEXT","GL_NV_vertex_program4"));
	 fn(index1,x1,y1);
}
typedef void (*PFNGLVERTEXATTRIBI2IVEXTPROC_HPP)(GLuint,const GLint *);
static inline void VertexAttribI2ivEXT(GLuint index1,const GLint * v1)
{
	static PFNGLVERTEXATTRIBI2IVEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI2IVEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI2ivEXT","GL_NV_vertex_program4"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBI2UIEXTPROC_HPP)(GLuint,GLuint,GLuint);
static inline void VertexAttribI2uiEXT(GLuint index1,GLuint x1,GLuint y1)
{
	static PFNGLVERTEXATTRIBI2UIEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI2UIEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI2uiEXT","GL_NV_vertex_program4"));
	 fn(index1,x1,y1);
}
typedef void (*PFNGLVERTEXATTRIBI2UIVEXTPROC_HPP)(GLuint,const GLuint *);
static inline void VertexAttribI2uivEXT(GLuint index1,const GLuint * v1)
{
	static PFNGLVERTEXATTRIBI2UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI2UIVEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI2uivEXT","GL_NV_vertex_program4"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBI3IEXTPROC_HPP)(GLuint,GLint,GLint,GLint);
static inline void VertexAttribI3iEXT(GLuint index1,GLint x1,GLint y1,GLint z1)
{
	static PFNGLVERTEXATTRIBI3IEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI3IEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI3iEXT","GL_NV_vertex_program4"));
	 fn(index1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXATTRIBI3IVEXTPROC_HPP)(GLuint,const GLint *);
static inline void VertexAttribI3ivEXT(GLuint index1,const GLint * v1)
{
	static PFNGLVERTEXATTRIBI3IVEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI3IVEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI3ivEXT","GL_NV_vertex_program4"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBI3UIEXTPROC_HPP)(GLuint,GLuint,GLuint,GLuint);
static inline void VertexAttribI3uiEXT(GLuint index1,GLuint x1,GLuint y1,GLuint z1)
{
	static PFNGLVERTEXATTRIBI3UIEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI3UIEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI3uiEXT","GL_NV_vertex_program4"));
	 fn(index1,x1,y1,z1);
}
typedef void (*PFNGLVERTEXATTRIBI3UIVEXTPROC_HPP)(GLuint,const GLuint *);
static inline void VertexAttribI3uivEXT(GLuint index1,const GLuint * v1)
{
	static PFNGLVERTEXATTRIBI3UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI3UIVEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI3uivEXT","GL_NV_vertex_program4"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBI4BVEXTPROC_HPP)(GLuint,const GLbyte *);
static inline void VertexAttribI4bvEXT(GLuint index1,const GLbyte * v1)
{
	static PFNGLVERTEXATTRIBI4BVEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI4BVEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI4bvEXT","GL_NV_vertex_program4"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBI4IEXTPROC_HPP)(GLuint,GLint,GLint,GLint,GLint);
static inline void VertexAttribI4iEXT(GLuint index1,GLint x1,GLint y1,GLint z1,GLint w1)
{
	static PFNGLVERTEXATTRIBI4IEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI4IEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI4iEXT","GL_NV_vertex_program4"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIBI4IVEXTPROC_HPP)(GLuint,const GLint *);
static inline void VertexAttribI4ivEXT(GLuint index1,const GLint * v1)
{
	static PFNGLVERTEXATTRIBI4IVEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI4IVEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI4ivEXT","GL_NV_vertex_program4"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBI4SVEXTPROC_HPP)(GLuint,const GLshort *);
static inline void VertexAttribI4svEXT(GLuint index1,const GLshort * v1)
{
	static PFNGLVERTEXATTRIBI4SVEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI4SVEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI4svEXT","GL_NV_vertex_program4"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBI4UBVEXTPROC_HPP)(GLuint,const GLubyte *);
static inline void VertexAttribI4ubvEXT(GLuint index1,const GLubyte * v1)
{
	static PFNGLVERTEXATTRIBI4UBVEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI4UBVEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI4ubvEXT","GL_NV_vertex_program4"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBI4UIEXTPROC_HPP)(GLuint,GLuint,GLuint,GLuint,GLuint);
static inline void VertexAttribI4uiEXT(GLuint index1,GLuint x1,GLuint y1,GLuint z1,GLuint w1)
{
	static PFNGLVERTEXATTRIBI4UIEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI4UIEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI4uiEXT","GL_NV_vertex_program4"));
	 fn(index1,x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEXATTRIBI4UIVEXTPROC_HPP)(GLuint,const GLuint *);
static inline void VertexAttribI4uivEXT(GLuint index1,const GLuint * v1)
{
	static PFNGLVERTEXATTRIBI4UIVEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI4UIVEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI4uivEXT","GL_NV_vertex_program4"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBI4USVEXTPROC_HPP)(GLuint,const GLushort *);
static inline void VertexAttribI4usvEXT(GLuint index1,const GLushort * v1)
{
	static PFNGLVERTEXATTRIBI4USVEXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBI4USVEXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribI4usvEXT","GL_NV_vertex_program4"));
	 fn(index1,v1);
}
typedef void (*PFNGLVERTEXATTRIBIPOINTEREXTPROC_HPP)(GLuint,GLint,GLenum,GLsizei,const void *);
static inline void VertexAttribIPointerEXT(GLuint index1,GLint size1,GLenum type1,GLsizei stride1,const void * pointer1)
{
	static PFNGLVERTEXATTRIBIPOINTEREXTPROC_HPP fn=reinterpret_cast<PFNGLVERTEXATTRIBIPOINTEREXTPROC_HPP>(_impl::_get_proc_address("glVertexAttribIPointerEXT","GL_NV_vertex_program4"));
	 fn(index1,size1,type1,stride1,pointer1);
}}
#endif

#ifndef GL_NV_video_capture
#define GL_NV_video_capture
#ifndef GL_VIDEO_BUFFER_NV
#define GL_VIDEO_BUFFER_NV 0x9020
#endif //GL_VIDEO_BUFFER_NV
#ifndef GL_VIDEO_BUFFER_BINDING_NV
#define GL_VIDEO_BUFFER_BINDING_NV 0x9021
#endif //GL_VIDEO_BUFFER_BINDING_NV
#ifndef GL_FIELD_UPPER_NV
#define GL_FIELD_UPPER_NV 0x9022
#endif //GL_FIELD_UPPER_NV
#ifndef GL_FIELD_LOWER_NV
#define GL_FIELD_LOWER_NV 0x9023
#endif //GL_FIELD_LOWER_NV
#ifndef GL_NUM_VIDEO_CAPTURE_STREAMS_NV
#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024
#endif //GL_NUM_VIDEO_CAPTURE_STREAMS_NV
#ifndef GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV
#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025
#endif //GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV
#ifndef GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV
#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026
#endif //GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV
#ifndef GL_LAST_VIDEO_CAPTURE_STATUS_NV
#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027
#endif //GL_LAST_VIDEO_CAPTURE_STATUS_NV
#ifndef GL_VIDEO_BUFFER_PITCH_NV
#define GL_VIDEO_BUFFER_PITCH_NV 0x9028
#endif //GL_VIDEO_BUFFER_PITCH_NV
#ifndef GL_VIDEO_COLOR_CONVERSION_MATRIX_NV
#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029
#endif //GL_VIDEO_COLOR_CONVERSION_MATRIX_NV
#ifndef GL_VIDEO_COLOR_CONVERSION_MAX_NV
#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A
#endif //GL_VIDEO_COLOR_CONVERSION_MAX_NV
#ifndef GL_VIDEO_COLOR_CONVERSION_MIN_NV
#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B
#endif //GL_VIDEO_COLOR_CONVERSION_MIN_NV
#ifndef GL_VIDEO_COLOR_CONVERSION_OFFSET_NV
#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C
#endif //GL_VIDEO_COLOR_CONVERSION_OFFSET_NV
#ifndef GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV
#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D
#endif //GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV
#ifndef GL_PARTIAL_SUCCESS_NV
#define GL_PARTIAL_SUCCESS_NV 0x902E
#endif //GL_PARTIAL_SUCCESS_NV
#ifndef GL_SUCCESS_NV
#define GL_SUCCESS_NV 0x902F
#endif //GL_SUCCESS_NV
#ifndef GL_FAILURE_NV
#define GL_FAILURE_NV 0x9030
#endif //GL_FAILURE_NV
#ifndef GL_YCBYCR8_422_NV
#define GL_YCBYCR8_422_NV 0x9031
#endif //GL_YCBYCR8_422_NV
#ifndef GL_YCBAYCR8A_4224_NV
#define GL_YCBAYCR8A_4224_NV 0x9032
#endif //GL_YCBAYCR8A_4224_NV
#ifndef GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV
#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033
#endif //GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV
#ifndef GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV
#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034
#endif //GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV
#ifndef GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV
#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035
#endif //GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV
#ifndef GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV
#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036
#endif //GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV
#ifndef GL_Z4Y12Z4CB12Z4CR12_444_NV
#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037
#endif //GL_Z4Y12Z4CB12Z4CR12_444_NV
#ifndef GL_VIDEO_CAPTURE_FRAME_WIDTH_NV
#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038
#endif //GL_VIDEO_CAPTURE_FRAME_WIDTH_NV
#ifndef GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV
#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039
#endif //GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV
#ifndef GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV
#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A
#endif //GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV
#ifndef GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV
#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B
#endif //GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV
#ifndef GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV
#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C
#endif //GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV
extern "C" {
}
namespace gl{

typedef void (*PFNGLBEGINVIDEOCAPTURENVPROC_HPP)(GLuint);
static inline void BeginVideoCaptureNV(GLuint video_capture_slot1)
{
	static PFNGLBEGINVIDEOCAPTURENVPROC_HPP fn=reinterpret_cast<PFNGLBEGINVIDEOCAPTURENVPROC_HPP>(_impl::_get_proc_address("glBeginVideoCaptureNV","GL_NV_video_capture"));
	 fn(video_capture_slot1);
}
typedef void (*PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC_HPP)(GLuint,GLuint,GLenum,GLintptrARB);
static inline void BindVideoCaptureStreamBufferNV(GLuint video_capture_slot1,GLuint stream1,GLenum frame_region1,GLintptrARB offset1)
{
	static PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC_HPP fn=reinterpret_cast<PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC_HPP>(_impl::_get_proc_address("glBindVideoCaptureStreamBufferNV","GL_NV_video_capture"));
	 fn(video_capture_slot1,stream1,frame_region1,offset1);
}
typedef void (*PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC_HPP)(GLuint,GLuint,GLenum,GLenum,GLuint);
static inline void BindVideoCaptureStreamTextureNV(GLuint video_capture_slot1,GLuint stream1,GLenum frame_region1,GLenum target1,GLuint texture1)
{
	static PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC_HPP fn=reinterpret_cast<PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC_HPP>(_impl::_get_proc_address("glBindVideoCaptureStreamTextureNV","GL_NV_video_capture"));
	 fn(video_capture_slot1,stream1,frame_region1,target1,texture1);
}
typedef void (*PFNGLENDVIDEOCAPTURENVPROC_HPP)(GLuint);
static inline void EndVideoCaptureNV(GLuint video_capture_slot1)
{
	static PFNGLENDVIDEOCAPTURENVPROC_HPP fn=reinterpret_cast<PFNGLENDVIDEOCAPTURENVPROC_HPP>(_impl::_get_proc_address("glEndVideoCaptureNV","GL_NV_video_capture"));
	 fn(video_capture_slot1);
}
typedef void (*PFNGLGETVIDEOCAPTURESTREAMDVNVPROC_HPP)(GLuint,GLuint,GLenum,GLdouble *);
static inline void GetVideoCaptureStreamdvNV(GLuint video_capture_slot1,GLuint stream1,GLenum pname1,GLdouble * params1)
{
	static PFNGLGETVIDEOCAPTURESTREAMDVNVPROC_HPP fn=reinterpret_cast<PFNGLGETVIDEOCAPTURESTREAMDVNVPROC_HPP>(_impl::_get_proc_address("glGetVideoCaptureStreamdvNV","GL_NV_video_capture"));
	 fn(video_capture_slot1,stream1,pname1,params1);
}
typedef void (*PFNGLGETVIDEOCAPTURESTREAMFVNVPROC_HPP)(GLuint,GLuint,GLenum,GLfloat *);
static inline void GetVideoCaptureStreamfvNV(GLuint video_capture_slot1,GLuint stream1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETVIDEOCAPTURESTREAMFVNVPROC_HPP fn=reinterpret_cast<PFNGLGETVIDEOCAPTURESTREAMFVNVPROC_HPP>(_impl::_get_proc_address("glGetVideoCaptureStreamfvNV","GL_NV_video_capture"));
	 fn(video_capture_slot1,stream1,pname1,params1);
}
typedef void (*PFNGLGETVIDEOCAPTURESTREAMIVNVPROC_HPP)(GLuint,GLuint,GLenum,GLint *);
static inline void GetVideoCaptureStreamivNV(GLuint video_capture_slot1,GLuint stream1,GLenum pname1,GLint * params1)
{
	static PFNGLGETVIDEOCAPTURESTREAMIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETVIDEOCAPTURESTREAMIVNVPROC_HPP>(_impl::_get_proc_address("glGetVideoCaptureStreamivNV","GL_NV_video_capture"));
	 fn(video_capture_slot1,stream1,pname1,params1);
}
typedef void (*PFNGLGETVIDEOCAPTUREIVNVPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetVideoCaptureivNV(GLuint video_capture_slot1,GLenum pname1,GLint * params1)
{
	static PFNGLGETVIDEOCAPTUREIVNVPROC_HPP fn=reinterpret_cast<PFNGLGETVIDEOCAPTUREIVNVPROC_HPP>(_impl::_get_proc_address("glGetVideoCaptureivNV","GL_NV_video_capture"));
	 fn(video_capture_slot1,pname1,params1);
}
typedef GLenum (*PFNGLVIDEOCAPTURENVPROC_HPP)(GLuint,GLuint *,GLuint64EXT *);
static inline GLenum VideoCaptureNV(GLuint video_capture_slot1,GLuint * sequence_num1,GLuint64EXT * capture_time1)
{
	static PFNGLVIDEOCAPTURENVPROC_HPP fn=reinterpret_cast<PFNGLVIDEOCAPTURENVPROC_HPP>(_impl::_get_proc_address("glVideoCaptureNV","GL_NV_video_capture"));
	return fn(video_capture_slot1,sequence_num1,capture_time1);
}
typedef void (*PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC_HPP)(GLuint,GLuint,GLenum,const GLdouble *);
static inline void VideoCaptureStreamParameterdvNV(GLuint video_capture_slot1,GLuint stream1,GLenum pname1,const GLdouble * params1)
{
	static PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC_HPP fn=reinterpret_cast<PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC_HPP>(_impl::_get_proc_address("glVideoCaptureStreamParameterdvNV","GL_NV_video_capture"));
	 fn(video_capture_slot1,stream1,pname1,params1);
}
typedef void (*PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC_HPP)(GLuint,GLuint,GLenum,const GLfloat *);
static inline void VideoCaptureStreamParameterfvNV(GLuint video_capture_slot1,GLuint stream1,GLenum pname1,const GLfloat * params1)
{
	static PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC_HPP fn=reinterpret_cast<PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC_HPP>(_impl::_get_proc_address("glVideoCaptureStreamParameterfvNV","GL_NV_video_capture"));
	 fn(video_capture_slot1,stream1,pname1,params1);
}
typedef void (*PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC_HPP)(GLuint,GLuint,GLenum,const GLint *);
static inline void VideoCaptureStreamParameterivNV(GLuint video_capture_slot1,GLuint stream1,GLenum pname1,const GLint * params1)
{
	static PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC_HPP fn=reinterpret_cast<PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC_HPP>(_impl::_get_proc_address("glVideoCaptureStreamParameterivNV","GL_NV_video_capture"));
	 fn(video_capture_slot1,stream1,pname1,params1);
}}
#endif

#ifndef GL_OES_byte_coordinates
#define GL_OES_byte_coordinates
#ifndef GL_BYTE
#define GL_BYTE 0x1400
#endif //GL_BYTE
extern "C" {
}
namespace gl{

typedef void (*PFNGLMULTITEXCOORD1BOESPROC_HPP)(GLenum,GLbyte);
static inline void MultiTexCoord1bOES(GLenum texture1,GLbyte s1)
{
	static PFNGLMULTITEXCOORD1BOESPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD1BOESPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord1bOES","GL_OES_byte_coordinates"));
	 fn(texture1,s1);
}
typedef void (*PFNGLMULTITEXCOORD1BVOESPROC_HPP)(GLenum,const GLbyte *);
static inline void MultiTexCoord1bvOES(GLenum texture1,const GLbyte * coords1)
{
	static PFNGLMULTITEXCOORD1BVOESPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD1BVOESPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord1bvOES","GL_OES_byte_coordinates"));
	 fn(texture1,coords1);
}
typedef void (*PFNGLMULTITEXCOORD2BOESPROC_HPP)(GLenum,GLbyte,GLbyte);
static inline void MultiTexCoord2bOES(GLenum texture1,GLbyte s1,GLbyte t1)
{
	static PFNGLMULTITEXCOORD2BOESPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD2BOESPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord2bOES","GL_OES_byte_coordinates"));
	 fn(texture1,s1,t1);
}
typedef void (*PFNGLMULTITEXCOORD2BVOESPROC_HPP)(GLenum,const GLbyte *);
static inline void MultiTexCoord2bvOES(GLenum texture1,const GLbyte * coords1)
{
	static PFNGLMULTITEXCOORD2BVOESPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD2BVOESPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord2bvOES","GL_OES_byte_coordinates"));
	 fn(texture1,coords1);
}
typedef void (*PFNGLMULTITEXCOORD3BOESPROC_HPP)(GLenum,GLbyte,GLbyte,GLbyte);
static inline void MultiTexCoord3bOES(GLenum texture1,GLbyte s1,GLbyte t1,GLbyte r1)
{
	static PFNGLMULTITEXCOORD3BOESPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD3BOESPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord3bOES","GL_OES_byte_coordinates"));
	 fn(texture1,s1,t1,r1);
}
typedef void (*PFNGLMULTITEXCOORD3BVOESPROC_HPP)(GLenum,const GLbyte *);
static inline void MultiTexCoord3bvOES(GLenum texture1,const GLbyte * coords1)
{
	static PFNGLMULTITEXCOORD3BVOESPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD3BVOESPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord3bvOES","GL_OES_byte_coordinates"));
	 fn(texture1,coords1);
}
typedef void (*PFNGLMULTITEXCOORD4BOESPROC_HPP)(GLenum,GLbyte,GLbyte,GLbyte,GLbyte);
static inline void MultiTexCoord4bOES(GLenum texture1,GLbyte s1,GLbyte t1,GLbyte r1,GLbyte q1)
{
	static PFNGLMULTITEXCOORD4BOESPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD4BOESPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord4bOES","GL_OES_byte_coordinates"));
	 fn(texture1,s1,t1,r1,q1);
}
typedef void (*PFNGLMULTITEXCOORD4BVOESPROC_HPP)(GLenum,const GLbyte *);
static inline void MultiTexCoord4bvOES(GLenum texture1,const GLbyte * coords1)
{
	static PFNGLMULTITEXCOORD4BVOESPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD4BVOESPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord4bvOES","GL_OES_byte_coordinates"));
	 fn(texture1,coords1);
}
typedef void (*PFNGLTEXCOORD1BOESPROC_HPP)(GLbyte);
static inline void TexCoord1bOES(GLbyte s1)
{
	static PFNGLTEXCOORD1BOESPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD1BOESPROC_HPP>(_impl::_get_proc_address("glTexCoord1bOES","GL_OES_byte_coordinates"));
	 fn(s1);
}
typedef void (*PFNGLTEXCOORD1BVOESPROC_HPP)(const GLbyte *);
static inline void TexCoord1bvOES(const GLbyte * coords1)
{
	static PFNGLTEXCOORD1BVOESPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD1BVOESPROC_HPP>(_impl::_get_proc_address("glTexCoord1bvOES","GL_OES_byte_coordinates"));
	 fn(coords1);
}
typedef void (*PFNGLTEXCOORD2BOESPROC_HPP)(GLbyte,GLbyte);
static inline void TexCoord2bOES(GLbyte s1,GLbyte t1)
{
	static PFNGLTEXCOORD2BOESPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD2BOESPROC_HPP>(_impl::_get_proc_address("glTexCoord2bOES","GL_OES_byte_coordinates"));
	 fn(s1,t1);
}
typedef void (*PFNGLTEXCOORD2BVOESPROC_HPP)(const GLbyte *);
static inline void TexCoord2bvOES(const GLbyte * coords1)
{
	static PFNGLTEXCOORD2BVOESPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD2BVOESPROC_HPP>(_impl::_get_proc_address("glTexCoord2bvOES","GL_OES_byte_coordinates"));
	 fn(coords1);
}
typedef void (*PFNGLTEXCOORD3BOESPROC_HPP)(GLbyte,GLbyte,GLbyte);
static inline void TexCoord3bOES(GLbyte s1,GLbyte t1,GLbyte r1)
{
	static PFNGLTEXCOORD3BOESPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD3BOESPROC_HPP>(_impl::_get_proc_address("glTexCoord3bOES","GL_OES_byte_coordinates"));
	 fn(s1,t1,r1);
}
typedef void (*PFNGLTEXCOORD3BVOESPROC_HPP)(const GLbyte *);
static inline void TexCoord3bvOES(const GLbyte * coords1)
{
	static PFNGLTEXCOORD3BVOESPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD3BVOESPROC_HPP>(_impl::_get_proc_address("glTexCoord3bvOES","GL_OES_byte_coordinates"));
	 fn(coords1);
}
typedef void (*PFNGLTEXCOORD4BOESPROC_HPP)(GLbyte,GLbyte,GLbyte,GLbyte);
static inline void TexCoord4bOES(GLbyte s1,GLbyte t1,GLbyte r1,GLbyte q1)
{
	static PFNGLTEXCOORD4BOESPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD4BOESPROC_HPP>(_impl::_get_proc_address("glTexCoord4bOES","GL_OES_byte_coordinates"));
	 fn(s1,t1,r1,q1);
}
typedef void (*PFNGLTEXCOORD4BVOESPROC_HPP)(const GLbyte *);
static inline void TexCoord4bvOES(const GLbyte * coords1)
{
	static PFNGLTEXCOORD4BVOESPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD4BVOESPROC_HPP>(_impl::_get_proc_address("glTexCoord4bvOES","GL_OES_byte_coordinates"));
	 fn(coords1);
}
typedef void (*PFNGLVERTEX2BOESPROC_HPP)(GLbyte,GLbyte);
static inline void Vertex2bOES(GLbyte x1,GLbyte y1)
{
	static PFNGLVERTEX2BOESPROC_HPP fn=reinterpret_cast<PFNGLVERTEX2BOESPROC_HPP>(_impl::_get_proc_address("glVertex2bOES","GL_OES_byte_coordinates"));
	 fn(x1,y1);
}
typedef void (*PFNGLVERTEX2BVOESPROC_HPP)(const GLbyte *);
static inline void Vertex2bvOES(const GLbyte * coords1)
{
	static PFNGLVERTEX2BVOESPROC_HPP fn=reinterpret_cast<PFNGLVERTEX2BVOESPROC_HPP>(_impl::_get_proc_address("glVertex2bvOES","GL_OES_byte_coordinates"));
	 fn(coords1);
}
typedef void (*PFNGLVERTEX3BOESPROC_HPP)(GLbyte,GLbyte,GLbyte);
static inline void Vertex3bOES(GLbyte x1,GLbyte y1,GLbyte z1)
{
	static PFNGLVERTEX3BOESPROC_HPP fn=reinterpret_cast<PFNGLVERTEX3BOESPROC_HPP>(_impl::_get_proc_address("glVertex3bOES","GL_OES_byte_coordinates"));
	 fn(x1,y1,z1);
}
typedef void (*PFNGLVERTEX3BVOESPROC_HPP)(const GLbyte *);
static inline void Vertex3bvOES(const GLbyte * coords1)
{
	static PFNGLVERTEX3BVOESPROC_HPP fn=reinterpret_cast<PFNGLVERTEX3BVOESPROC_HPP>(_impl::_get_proc_address("glVertex3bvOES","GL_OES_byte_coordinates"));
	 fn(coords1);
}
typedef void (*PFNGLVERTEX4BOESPROC_HPP)(GLbyte,GLbyte,GLbyte,GLbyte);
static inline void Vertex4bOES(GLbyte x1,GLbyte y1,GLbyte z1,GLbyte w1)
{
	static PFNGLVERTEX4BOESPROC_HPP fn=reinterpret_cast<PFNGLVERTEX4BOESPROC_HPP>(_impl::_get_proc_address("glVertex4bOES","GL_OES_byte_coordinates"));
	 fn(x1,y1,z1,w1);
}
typedef void (*PFNGLVERTEX4BVOESPROC_HPP)(const GLbyte *);
static inline void Vertex4bvOES(const GLbyte * coords1)
{
	static PFNGLVERTEX4BVOESPROC_HPP fn=reinterpret_cast<PFNGLVERTEX4BVOESPROC_HPP>(_impl::_get_proc_address("glVertex4bvOES","GL_OES_byte_coordinates"));
	 fn(coords1);
}}
#endif

#ifndef GL_OES_compressed_paletted_texture
#define GL_OES_compressed_paletted_texture
#ifndef GL_PALETTE4_RGB8_OES
#define GL_PALETTE4_RGB8_OES 0x8B90
#endif //GL_PALETTE4_RGB8_OES
#ifndef GL_PALETTE4_RGBA8_OES
#define GL_PALETTE4_RGBA8_OES 0x8B91
#endif //GL_PALETTE4_RGBA8_OES
#ifndef GL_PALETTE4_R5_G6_B5_OES
#define GL_PALETTE4_R5_G6_B5_OES 0x8B92
#endif //GL_PALETTE4_R5_G6_B5_OES
#ifndef GL_PALETTE4_RGBA4_OES
#define GL_PALETTE4_RGBA4_OES 0x8B93
#endif //GL_PALETTE4_RGBA4_OES
#ifndef GL_PALETTE4_RGB5_A1_OES
#define GL_PALETTE4_RGB5_A1_OES 0x8B94
#endif //GL_PALETTE4_RGB5_A1_OES
#ifndef GL_PALETTE8_RGB8_OES
#define GL_PALETTE8_RGB8_OES 0x8B95
#endif //GL_PALETTE8_RGB8_OES
#ifndef GL_PALETTE8_RGBA8_OES
#define GL_PALETTE8_RGBA8_OES 0x8B96
#endif //GL_PALETTE8_RGBA8_OES
#ifndef GL_PALETTE8_R5_G6_B5_OES
#define GL_PALETTE8_R5_G6_B5_OES 0x8B97
#endif //GL_PALETTE8_R5_G6_B5_OES
#ifndef GL_PALETTE8_RGBA4_OES
#define GL_PALETTE8_RGBA4_OES 0x8B98
#endif //GL_PALETTE8_RGBA4_OES
#ifndef GL_PALETTE8_RGB5_A1_OES
#define GL_PALETTE8_RGB5_A1_OES 0x8B99
#endif //GL_PALETTE8_RGB5_A1_OES
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_OES_fixed_point
#define GL_OES_fixed_point
#ifndef GL_FIXED_OES
#define GL_FIXED_OES 0x140C
#endif //GL_FIXED_OES
extern "C" {
}
namespace gl{

typedef void (*PFNGLACCUMXOESPROC_HPP)(GLenum,GLfixed);
static inline void AccumxOES(GLenum op1,GLfixed value1)
{
	static PFNGLACCUMXOESPROC_HPP fn=reinterpret_cast<PFNGLACCUMXOESPROC_HPP>(_impl::_get_proc_address("glAccumxOES","GL_OES_fixed_point"));
	 fn(op1,value1);
}
typedef void (*PFNGLALPHAFUNCXOESPROC_HPP)(GLenum,GLfixed);
static inline void AlphaFuncxOES(GLenum func1,GLfixed ref1)
{
	static PFNGLALPHAFUNCXOESPROC_HPP fn=reinterpret_cast<PFNGLALPHAFUNCXOESPROC_HPP>(_impl::_get_proc_address("glAlphaFuncxOES","GL_OES_fixed_point"));
	 fn(func1,ref1);
}
typedef void (*PFNGLBITMAPXOESPROC_HPP)(GLsizei,GLsizei,GLfixed,GLfixed,GLfixed,GLfixed,const GLubyte *);
static inline void BitmapxOES(GLsizei width1,GLsizei height1,GLfixed xorig1,GLfixed yorig1,GLfixed xmove1,GLfixed ymove1,const GLubyte * bitmap1)
{
	static PFNGLBITMAPXOESPROC_HPP fn=reinterpret_cast<PFNGLBITMAPXOESPROC_HPP>(_impl::_get_proc_address("glBitmapxOES","GL_OES_fixed_point"));
	 fn(width1,height1,xorig1,yorig1,xmove1,ymove1,bitmap1);
}
typedef void (*PFNGLBLENDCOLORXOESPROC_HPP)(GLfixed,GLfixed,GLfixed,GLfixed);
static inline void BlendColorxOES(GLfixed red1,GLfixed green1,GLfixed blue1,GLfixed alpha1)
{
	static PFNGLBLENDCOLORXOESPROC_HPP fn=reinterpret_cast<PFNGLBLENDCOLORXOESPROC_HPP>(_impl::_get_proc_address("glBlendColorxOES","GL_OES_fixed_point"));
	 fn(red1,green1,blue1,alpha1);
}
typedef void (*PFNGLCLEARACCUMXOESPROC_HPP)(GLfixed,GLfixed,GLfixed,GLfixed);
static inline void ClearAccumxOES(GLfixed red1,GLfixed green1,GLfixed blue1,GLfixed alpha1)
{
	static PFNGLCLEARACCUMXOESPROC_HPP fn=reinterpret_cast<PFNGLCLEARACCUMXOESPROC_HPP>(_impl::_get_proc_address("glClearAccumxOES","GL_OES_fixed_point"));
	 fn(red1,green1,blue1,alpha1);
}
typedef void (*PFNGLCLEARCOLORXOESPROC_HPP)(GLfixed,GLfixed,GLfixed,GLfixed);
static inline void ClearColorxOES(GLfixed red1,GLfixed green1,GLfixed blue1,GLfixed alpha1)
{
	static PFNGLCLEARCOLORXOESPROC_HPP fn=reinterpret_cast<PFNGLCLEARCOLORXOESPROC_HPP>(_impl::_get_proc_address("glClearColorxOES","GL_OES_fixed_point"));
	 fn(red1,green1,blue1,alpha1);
}
typedef void (*PFNGLCLEARDEPTHXOESPROC_HPP)(GLfixed);
static inline void ClearDepthxOES(GLfixed depth1)
{
	static PFNGLCLEARDEPTHXOESPROC_HPP fn=reinterpret_cast<PFNGLCLEARDEPTHXOESPROC_HPP>(_impl::_get_proc_address("glClearDepthxOES","GL_OES_fixed_point"));
	 fn(depth1);
}
typedef void (*PFNGLCLIPPLANEXOESPROC_HPP)(GLenum,const GLfixed *);
static inline void ClipPlanexOES(GLenum plane1,const GLfixed * equation1)
{
	static PFNGLCLIPPLANEXOESPROC_HPP fn=reinterpret_cast<PFNGLCLIPPLANEXOESPROC_HPP>(_impl::_get_proc_address("glClipPlanexOES","GL_OES_fixed_point"));
	 fn(plane1,equation1);
}
typedef void (*PFNGLCOLOR3XOESPROC_HPP)(GLfixed,GLfixed,GLfixed);
static inline void Color3xOES(GLfixed red1,GLfixed green1,GLfixed blue1)
{
	static PFNGLCOLOR3XOESPROC_HPP fn=reinterpret_cast<PFNGLCOLOR3XOESPROC_HPP>(_impl::_get_proc_address("glColor3xOES","GL_OES_fixed_point"));
	 fn(red1,green1,blue1);
}
typedef void (*PFNGLCOLOR3XVOESPROC_HPP)(const GLfixed *);
static inline void Color3xvOES(const GLfixed * components1)
{
	static PFNGLCOLOR3XVOESPROC_HPP fn=reinterpret_cast<PFNGLCOLOR3XVOESPROC_HPP>(_impl::_get_proc_address("glColor3xvOES","GL_OES_fixed_point"));
	 fn(components1);
}
typedef void (*PFNGLCOLOR4XOESPROC_HPP)(GLfixed,GLfixed,GLfixed,GLfixed);
static inline void Color4xOES(GLfixed red1,GLfixed green1,GLfixed blue1,GLfixed alpha1)
{
	static PFNGLCOLOR4XOESPROC_HPP fn=reinterpret_cast<PFNGLCOLOR4XOESPROC_HPP>(_impl::_get_proc_address("glColor4xOES","GL_OES_fixed_point"));
	 fn(red1,green1,blue1,alpha1);
}
typedef void (*PFNGLCOLOR4XVOESPROC_HPP)(const GLfixed *);
static inline void Color4xvOES(const GLfixed * components1)
{
	static PFNGLCOLOR4XVOESPROC_HPP fn=reinterpret_cast<PFNGLCOLOR4XVOESPROC_HPP>(_impl::_get_proc_address("glColor4xvOES","GL_OES_fixed_point"));
	 fn(components1);
}
typedef void (*PFNGLCONVOLUTIONPARAMETERXOESPROC_HPP)(GLenum,GLenum,GLfixed);
static inline void ConvolutionParameterxOES(GLenum target1,GLenum pname1,GLfixed param1)
{
	static PFNGLCONVOLUTIONPARAMETERXOESPROC_HPP fn=reinterpret_cast<PFNGLCONVOLUTIONPARAMETERXOESPROC_HPP>(_impl::_get_proc_address("glConvolutionParameterxOES","GL_OES_fixed_point"));
	 fn(target1,pname1,param1);
}
typedef void (*PFNGLCONVOLUTIONPARAMETERXVOESPROC_HPP)(GLenum,GLenum,const GLfixed *);
static inline void ConvolutionParameterxvOES(GLenum target1,GLenum pname1,const GLfixed * params1)
{
	static PFNGLCONVOLUTIONPARAMETERXVOESPROC_HPP fn=reinterpret_cast<PFNGLCONVOLUTIONPARAMETERXVOESPROC_HPP>(_impl::_get_proc_address("glConvolutionParameterxvOES","GL_OES_fixed_point"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLDEPTHRANGEXOESPROC_HPP)(GLfixed,GLfixed);
static inline void DepthRangexOES(GLfixed n1,GLfixed f1)
{
	static PFNGLDEPTHRANGEXOESPROC_HPP fn=reinterpret_cast<PFNGLDEPTHRANGEXOESPROC_HPP>(_impl::_get_proc_address("glDepthRangexOES","GL_OES_fixed_point"));
	 fn(n1,f1);
}
typedef void (*PFNGLEVALCOORD1XOESPROC_HPP)(GLfixed);
static inline void EvalCoord1xOES(GLfixed u1)
{
	static PFNGLEVALCOORD1XOESPROC_HPP fn=reinterpret_cast<PFNGLEVALCOORD1XOESPROC_HPP>(_impl::_get_proc_address("glEvalCoord1xOES","GL_OES_fixed_point"));
	 fn(u1);
}
typedef void (*PFNGLEVALCOORD1XVOESPROC_HPP)(const GLfixed *);
static inline void EvalCoord1xvOES(const GLfixed * coords1)
{
	static PFNGLEVALCOORD1XVOESPROC_HPP fn=reinterpret_cast<PFNGLEVALCOORD1XVOESPROC_HPP>(_impl::_get_proc_address("glEvalCoord1xvOES","GL_OES_fixed_point"));
	 fn(coords1);
}
typedef void (*PFNGLEVALCOORD2XOESPROC_HPP)(GLfixed,GLfixed);
static inline void EvalCoord2xOES(GLfixed u1,GLfixed v1)
{
	static PFNGLEVALCOORD2XOESPROC_HPP fn=reinterpret_cast<PFNGLEVALCOORD2XOESPROC_HPP>(_impl::_get_proc_address("glEvalCoord2xOES","GL_OES_fixed_point"));
	 fn(u1,v1);
}
typedef void (*PFNGLEVALCOORD2XVOESPROC_HPP)(const GLfixed *);
static inline void EvalCoord2xvOES(const GLfixed * coords1)
{
	static PFNGLEVALCOORD2XVOESPROC_HPP fn=reinterpret_cast<PFNGLEVALCOORD2XVOESPROC_HPP>(_impl::_get_proc_address("glEvalCoord2xvOES","GL_OES_fixed_point"));
	 fn(coords1);
}
typedef void (*PFNGLFEEDBACKBUFFERXOESPROC_HPP)(GLsizei,GLenum,const GLfixed *);
static inline void FeedbackBufferxOES(GLsizei n1,GLenum type1,const GLfixed * buffer1)
{
	static PFNGLFEEDBACKBUFFERXOESPROC_HPP fn=reinterpret_cast<PFNGLFEEDBACKBUFFERXOESPROC_HPP>(_impl::_get_proc_address("glFeedbackBufferxOES","GL_OES_fixed_point"));
	 fn(n1,type1,buffer1);
}
typedef void (*PFNGLFOGXOESPROC_HPP)(GLenum,GLfixed);
static inline void FogxOES(GLenum pname1,GLfixed param1)
{
	static PFNGLFOGXOESPROC_HPP fn=reinterpret_cast<PFNGLFOGXOESPROC_HPP>(_impl::_get_proc_address("glFogxOES","GL_OES_fixed_point"));
	 fn(pname1,param1);
}
typedef void (*PFNGLFOGXVOESPROC_HPP)(GLenum,const GLfixed *);
static inline void FogxvOES(GLenum pname1,const GLfixed * param1)
{
	static PFNGLFOGXVOESPROC_HPP fn=reinterpret_cast<PFNGLFOGXVOESPROC_HPP>(_impl::_get_proc_address("glFogxvOES","GL_OES_fixed_point"));
	 fn(pname1,param1);
}
typedef void (*PFNGLFRUSTUMXOESPROC_HPP)(GLfixed,GLfixed,GLfixed,GLfixed,GLfixed,GLfixed);
static inline void FrustumxOES(GLfixed l1,GLfixed r1,GLfixed b1,GLfixed t1,GLfixed n1,GLfixed f1)
{
	static PFNGLFRUSTUMXOESPROC_HPP fn=reinterpret_cast<PFNGLFRUSTUMXOESPROC_HPP>(_impl::_get_proc_address("glFrustumxOES","GL_OES_fixed_point"));
	 fn(l1,r1,b1,t1,n1,f1);
}
typedef void (*PFNGLGETCLIPPLANEXOESPROC_HPP)(GLenum,GLfixed *);
static inline void GetClipPlanexOES(GLenum plane1,GLfixed * equation1)
{
	static PFNGLGETCLIPPLANEXOESPROC_HPP fn=reinterpret_cast<PFNGLGETCLIPPLANEXOESPROC_HPP>(_impl::_get_proc_address("glGetClipPlanexOES","GL_OES_fixed_point"));
	 fn(plane1,equation1);
}
typedef void (*PFNGLGETCONVOLUTIONPARAMETERXVOESPROC_HPP)(GLenum,GLenum,GLfixed *);
static inline void GetConvolutionParameterxvOES(GLenum target1,GLenum pname1,GLfixed * params1)
{
	static PFNGLGETCONVOLUTIONPARAMETERXVOESPROC_HPP fn=reinterpret_cast<PFNGLGETCONVOLUTIONPARAMETERXVOESPROC_HPP>(_impl::_get_proc_address("glGetConvolutionParameterxvOES","GL_OES_fixed_point"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETFIXEDVOESPROC_HPP)(GLenum,GLfixed *);
static inline void GetFixedvOES(GLenum pname1,GLfixed * params1)
{
	static PFNGLGETFIXEDVOESPROC_HPP fn=reinterpret_cast<PFNGLGETFIXEDVOESPROC_HPP>(_impl::_get_proc_address("glGetFixedvOES","GL_OES_fixed_point"));
	 fn(pname1,params1);
}
typedef void (*PFNGLGETHISTOGRAMPARAMETERXVOESPROC_HPP)(GLenum,GLenum,GLfixed *);
static inline void GetHistogramParameterxvOES(GLenum target1,GLenum pname1,GLfixed * params1)
{
	static PFNGLGETHISTOGRAMPARAMETERXVOESPROC_HPP fn=reinterpret_cast<PFNGLGETHISTOGRAMPARAMETERXVOESPROC_HPP>(_impl::_get_proc_address("glGetHistogramParameterxvOES","GL_OES_fixed_point"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETLIGHTXOESPROC_HPP)(GLenum,GLenum,GLfixed *);
static inline void GetLightxOES(GLenum light1,GLenum pname1,GLfixed * params1)
{
	static PFNGLGETLIGHTXOESPROC_HPP fn=reinterpret_cast<PFNGLGETLIGHTXOESPROC_HPP>(_impl::_get_proc_address("glGetLightxOES","GL_OES_fixed_point"));
	 fn(light1,pname1,params1);
}
typedef void (*PFNGLGETLIGHTXVOESPROC_HPP)(GLenum,GLenum,GLfixed *);
static inline void GetLightxvOES(GLenum light1,GLenum pname1,GLfixed * params1)
{
	static PFNGLGETLIGHTXVOESPROC_HPP fn=reinterpret_cast<PFNGLGETLIGHTXVOESPROC_HPP>(_impl::_get_proc_address("glGetLightxvOES","GL_OES_fixed_point"));
	 fn(light1,pname1,params1);
}
typedef void (*PFNGLGETMAPXVOESPROC_HPP)(GLenum,GLenum,GLfixed *);
static inline void GetMapxvOES(GLenum target1,GLenum query1,GLfixed * v1)
{
	static PFNGLGETMAPXVOESPROC_HPP fn=reinterpret_cast<PFNGLGETMAPXVOESPROC_HPP>(_impl::_get_proc_address("glGetMapxvOES","GL_OES_fixed_point"));
	 fn(target1,query1,v1);
}
typedef void (*PFNGLGETMATERIALXOESPROC_HPP)(GLenum,GLenum,GLfixed);
static inline void GetMaterialxOES(GLenum face1,GLenum pname1,GLfixed param1)
{
	static PFNGLGETMATERIALXOESPROC_HPP fn=reinterpret_cast<PFNGLGETMATERIALXOESPROC_HPP>(_impl::_get_proc_address("glGetMaterialxOES","GL_OES_fixed_point"));
	 fn(face1,pname1,param1);
}
typedef void (*PFNGLGETMATERIALXVOESPROC_HPP)(GLenum,GLenum,GLfixed *);
static inline void GetMaterialxvOES(GLenum face1,GLenum pname1,GLfixed * params1)
{
	static PFNGLGETMATERIALXVOESPROC_HPP fn=reinterpret_cast<PFNGLGETMATERIALXVOESPROC_HPP>(_impl::_get_proc_address("glGetMaterialxvOES","GL_OES_fixed_point"));
	 fn(face1,pname1,params1);
}
typedef void (*PFNGLGETPIXELMAPXVPROC_HPP)(GLenum,GLint,GLfixed *);
static inline void GetPixelMapxv(GLenum map1,GLint size1,GLfixed * values1)
{
	static PFNGLGETPIXELMAPXVPROC_HPP fn=reinterpret_cast<PFNGLGETPIXELMAPXVPROC_HPP>(_impl::_get_proc_address("glGetPixelMapxv","GL_OES_fixed_point"));
	 fn(map1,size1,values1);
}
typedef void (*PFNGLGETTEXENVXVOESPROC_HPP)(GLenum,GLenum,GLfixed *);
static inline void GetTexEnvxvOES(GLenum target1,GLenum pname1,GLfixed * params1)
{
	static PFNGLGETTEXENVXVOESPROC_HPP fn=reinterpret_cast<PFNGLGETTEXENVXVOESPROC_HPP>(_impl::_get_proc_address("glGetTexEnvxvOES","GL_OES_fixed_point"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETTEXGENXVOESPROC_HPP)(GLenum,GLenum,GLfixed *);
static inline void GetTexGenxvOES(GLenum coord1,GLenum pname1,GLfixed * params1)
{
	static PFNGLGETTEXGENXVOESPROC_HPP fn=reinterpret_cast<PFNGLGETTEXGENXVOESPROC_HPP>(_impl::_get_proc_address("glGetTexGenxvOES","GL_OES_fixed_point"));
	 fn(coord1,pname1,params1);
}
typedef void (*PFNGLGETTEXLEVELPARAMETERXVOESPROC_HPP)(GLenum,GLint,GLenum,GLfixed *);
static inline void GetTexLevelParameterxvOES(GLenum target1,GLint level1,GLenum pname1,GLfixed * params1)
{
	static PFNGLGETTEXLEVELPARAMETERXVOESPROC_HPP fn=reinterpret_cast<PFNGLGETTEXLEVELPARAMETERXVOESPROC_HPP>(_impl::_get_proc_address("glGetTexLevelParameterxvOES","GL_OES_fixed_point"));
	 fn(target1,level1,pname1,params1);
}
typedef void (*PFNGLGETTEXPARAMETERXVOESPROC_HPP)(GLenum,GLenum,GLfixed *);
static inline void GetTexParameterxvOES(GLenum target1,GLenum pname1,GLfixed * params1)
{
	static PFNGLGETTEXPARAMETERXVOESPROC_HPP fn=reinterpret_cast<PFNGLGETTEXPARAMETERXVOESPROC_HPP>(_impl::_get_proc_address("glGetTexParameterxvOES","GL_OES_fixed_point"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLINDEXXOESPROC_HPP)(GLfixed);
static inline void IndexxOES(GLfixed component1)
{
	static PFNGLINDEXXOESPROC_HPP fn=reinterpret_cast<PFNGLINDEXXOESPROC_HPP>(_impl::_get_proc_address("glIndexxOES","GL_OES_fixed_point"));
	 fn(component1);
}
typedef void (*PFNGLINDEXXVOESPROC_HPP)(const GLfixed *);
static inline void IndexxvOES(const GLfixed * component1)
{
	static PFNGLINDEXXVOESPROC_HPP fn=reinterpret_cast<PFNGLINDEXXVOESPROC_HPP>(_impl::_get_proc_address("glIndexxvOES","GL_OES_fixed_point"));
	 fn(component1);
}
typedef void (*PFNGLLIGHTMODELXOESPROC_HPP)(GLenum,GLfixed);
static inline void LightModelxOES(GLenum pname1,GLfixed param1)
{
	static PFNGLLIGHTMODELXOESPROC_HPP fn=reinterpret_cast<PFNGLLIGHTMODELXOESPROC_HPP>(_impl::_get_proc_address("glLightModelxOES","GL_OES_fixed_point"));
	 fn(pname1,param1);
}
typedef void (*PFNGLLIGHTMODELXVOESPROC_HPP)(GLenum,const GLfixed *);
static inline void LightModelxvOES(GLenum pname1,const GLfixed * param1)
{
	static PFNGLLIGHTMODELXVOESPROC_HPP fn=reinterpret_cast<PFNGLLIGHTMODELXVOESPROC_HPP>(_impl::_get_proc_address("glLightModelxvOES","GL_OES_fixed_point"));
	 fn(pname1,param1);
}
typedef void (*PFNGLLIGHTXOESPROC_HPP)(GLenum,GLenum,GLfixed);
static inline void LightxOES(GLenum light1,GLenum pname1,GLfixed param1)
{
	static PFNGLLIGHTXOESPROC_HPP fn=reinterpret_cast<PFNGLLIGHTXOESPROC_HPP>(_impl::_get_proc_address("glLightxOES","GL_OES_fixed_point"));
	 fn(light1,pname1,param1);
}
typedef void (*PFNGLLIGHTXVOESPROC_HPP)(GLenum,GLenum,const GLfixed *);
static inline void LightxvOES(GLenum light1,GLenum pname1,const GLfixed * params1)
{
	static PFNGLLIGHTXVOESPROC_HPP fn=reinterpret_cast<PFNGLLIGHTXVOESPROC_HPP>(_impl::_get_proc_address("glLightxvOES","GL_OES_fixed_point"));
	 fn(light1,pname1,params1);
}
typedef void (*PFNGLLINEWIDTHXOESPROC_HPP)(GLfixed);
static inline void LineWidthxOES(GLfixed width1)
{
	static PFNGLLINEWIDTHXOESPROC_HPP fn=reinterpret_cast<PFNGLLINEWIDTHXOESPROC_HPP>(_impl::_get_proc_address("glLineWidthxOES","GL_OES_fixed_point"));
	 fn(width1);
}
typedef void (*PFNGLLOADMATRIXXOESPROC_HPP)(const GLfixed *);
static inline void LoadMatrixxOES(const GLfixed * m1)
{
	static PFNGLLOADMATRIXXOESPROC_HPP fn=reinterpret_cast<PFNGLLOADMATRIXXOESPROC_HPP>(_impl::_get_proc_address("glLoadMatrixxOES","GL_OES_fixed_point"));
	 fn(m1);
}
typedef void (*PFNGLLOADTRANSPOSEMATRIXXOESPROC_HPP)(const GLfixed *);
static inline void LoadTransposeMatrixxOES(const GLfixed * m1)
{
	static PFNGLLOADTRANSPOSEMATRIXXOESPROC_HPP fn=reinterpret_cast<PFNGLLOADTRANSPOSEMATRIXXOESPROC_HPP>(_impl::_get_proc_address("glLoadTransposeMatrixxOES","GL_OES_fixed_point"));
	 fn(m1);
}
typedef void (*PFNGLMAP1XOESPROC_HPP)(GLenum,GLfixed,GLfixed,GLint,GLint,GLfixed);
static inline void Map1xOES(GLenum target1,GLfixed u11,GLfixed u21,GLint stride1,GLint order1,GLfixed points1)
{
	static PFNGLMAP1XOESPROC_HPP fn=reinterpret_cast<PFNGLMAP1XOESPROC_HPP>(_impl::_get_proc_address("glMap1xOES","GL_OES_fixed_point"));
	 fn(target1,u11,u21,stride1,order1,points1);
}
typedef void (*PFNGLMAP2XOESPROC_HPP)(GLenum,GLfixed,GLfixed,GLint,GLint,GLfixed,GLfixed,GLint,GLint,GLfixed);
static inline void Map2xOES(GLenum target1,GLfixed u11,GLfixed u21,GLint ustride1,GLint uorder1,GLfixed v11,GLfixed v21,GLint vstride1,GLint vorder1,GLfixed points1)
{
	static PFNGLMAP2XOESPROC_HPP fn=reinterpret_cast<PFNGLMAP2XOESPROC_HPP>(_impl::_get_proc_address("glMap2xOES","GL_OES_fixed_point"));
	 fn(target1,u11,u21,ustride1,uorder1,v11,v21,vstride1,vorder1,points1);
}
typedef void (*PFNGLMAPGRID1XOESPROC_HPP)(GLint,GLfixed,GLfixed);
static inline void MapGrid1xOES(GLint n1,GLfixed u11,GLfixed u21)
{
	static PFNGLMAPGRID1XOESPROC_HPP fn=reinterpret_cast<PFNGLMAPGRID1XOESPROC_HPP>(_impl::_get_proc_address("glMapGrid1xOES","GL_OES_fixed_point"));
	 fn(n1,u11,u21);
}
typedef void (*PFNGLMAPGRID2XOESPROC_HPP)(GLint,GLfixed,GLfixed,GLfixed,GLfixed);
static inline void MapGrid2xOES(GLint n1,GLfixed u11,GLfixed u21,GLfixed v11,GLfixed v21)
{
	static PFNGLMAPGRID2XOESPROC_HPP fn=reinterpret_cast<PFNGLMAPGRID2XOESPROC_HPP>(_impl::_get_proc_address("glMapGrid2xOES","GL_OES_fixed_point"));
	 fn(n1,u11,u21,v11,v21);
}
typedef void (*PFNGLMATERIALXOESPROC_HPP)(GLenum,GLenum,GLfixed);
static inline void MaterialxOES(GLenum face1,GLenum pname1,GLfixed param1)
{
	static PFNGLMATERIALXOESPROC_HPP fn=reinterpret_cast<PFNGLMATERIALXOESPROC_HPP>(_impl::_get_proc_address("glMaterialxOES","GL_OES_fixed_point"));
	 fn(face1,pname1,param1);
}
typedef void (*PFNGLMATERIALXVOESPROC_HPP)(GLenum,GLenum,const GLfixed *);
static inline void MaterialxvOES(GLenum face1,GLenum pname1,const GLfixed * param1)
{
	static PFNGLMATERIALXVOESPROC_HPP fn=reinterpret_cast<PFNGLMATERIALXVOESPROC_HPP>(_impl::_get_proc_address("glMaterialxvOES","GL_OES_fixed_point"));
	 fn(face1,pname1,param1);
}
typedef void (*PFNGLMULTMATRIXXOESPROC_HPP)(const GLfixed *);
static inline void MultMatrixxOES(const GLfixed * m1)
{
	static PFNGLMULTMATRIXXOESPROC_HPP fn=reinterpret_cast<PFNGLMULTMATRIXXOESPROC_HPP>(_impl::_get_proc_address("glMultMatrixxOES","GL_OES_fixed_point"));
	 fn(m1);
}
typedef void (*PFNGLMULTTRANSPOSEMATRIXXOESPROC_HPP)(const GLfixed *);
static inline void MultTransposeMatrixxOES(const GLfixed * m1)
{
	static PFNGLMULTTRANSPOSEMATRIXXOESPROC_HPP fn=reinterpret_cast<PFNGLMULTTRANSPOSEMATRIXXOESPROC_HPP>(_impl::_get_proc_address("glMultTransposeMatrixxOES","GL_OES_fixed_point"));
	 fn(m1);
}
typedef void (*PFNGLMULTITEXCOORD1XOESPROC_HPP)(GLenum,GLfixed);
static inline void MultiTexCoord1xOES(GLenum texture1,GLfixed s1)
{
	static PFNGLMULTITEXCOORD1XOESPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD1XOESPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord1xOES","GL_OES_fixed_point"));
	 fn(texture1,s1);
}
typedef void (*PFNGLMULTITEXCOORD1XVOESPROC_HPP)(GLenum,const GLfixed *);
static inline void MultiTexCoord1xvOES(GLenum texture1,const GLfixed * coords1)
{
	static PFNGLMULTITEXCOORD1XVOESPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD1XVOESPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord1xvOES","GL_OES_fixed_point"));
	 fn(texture1,coords1);
}
typedef void (*PFNGLMULTITEXCOORD2XOESPROC_HPP)(GLenum,GLfixed,GLfixed);
static inline void MultiTexCoord2xOES(GLenum texture1,GLfixed s1,GLfixed t1)
{
	static PFNGLMULTITEXCOORD2XOESPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD2XOESPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord2xOES","GL_OES_fixed_point"));
	 fn(texture1,s1,t1);
}
typedef void (*PFNGLMULTITEXCOORD2XVOESPROC_HPP)(GLenum,const GLfixed *);
static inline void MultiTexCoord2xvOES(GLenum texture1,const GLfixed * coords1)
{
	static PFNGLMULTITEXCOORD2XVOESPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD2XVOESPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord2xvOES","GL_OES_fixed_point"));
	 fn(texture1,coords1);
}
typedef void (*PFNGLMULTITEXCOORD3XOESPROC_HPP)(GLenum,GLfixed,GLfixed,GLfixed);
static inline void MultiTexCoord3xOES(GLenum texture1,GLfixed s1,GLfixed t1,GLfixed r1)
{
	static PFNGLMULTITEXCOORD3XOESPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD3XOESPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord3xOES","GL_OES_fixed_point"));
	 fn(texture1,s1,t1,r1);
}
typedef void (*PFNGLMULTITEXCOORD3XVOESPROC_HPP)(GLenum,const GLfixed *);
static inline void MultiTexCoord3xvOES(GLenum texture1,const GLfixed * coords1)
{
	static PFNGLMULTITEXCOORD3XVOESPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD3XVOESPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord3xvOES","GL_OES_fixed_point"));
	 fn(texture1,coords1);
}
typedef void (*PFNGLMULTITEXCOORD4XOESPROC_HPP)(GLenum,GLfixed,GLfixed,GLfixed,GLfixed);
static inline void MultiTexCoord4xOES(GLenum texture1,GLfixed s1,GLfixed t1,GLfixed r1,GLfixed q1)
{
	static PFNGLMULTITEXCOORD4XOESPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD4XOESPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord4xOES","GL_OES_fixed_point"));
	 fn(texture1,s1,t1,r1,q1);
}
typedef void (*PFNGLMULTITEXCOORD4XVOESPROC_HPP)(GLenum,const GLfixed *);
static inline void MultiTexCoord4xvOES(GLenum texture1,const GLfixed * coords1)
{
	static PFNGLMULTITEXCOORD4XVOESPROC_HPP fn=reinterpret_cast<PFNGLMULTITEXCOORD4XVOESPROC_HPP>(_impl::_get_proc_address("glMultiTexCoord4xvOES","GL_OES_fixed_point"));
	 fn(texture1,coords1);
}
typedef void (*PFNGLNORMAL3XOESPROC_HPP)(GLfixed,GLfixed,GLfixed);
static inline void Normal3xOES(GLfixed nx1,GLfixed ny1,GLfixed nz1)
{
	static PFNGLNORMAL3XOESPROC_HPP fn=reinterpret_cast<PFNGLNORMAL3XOESPROC_HPP>(_impl::_get_proc_address("glNormal3xOES","GL_OES_fixed_point"));
	 fn(nx1,ny1,nz1);
}
typedef void (*PFNGLNORMAL3XVOESPROC_HPP)(const GLfixed *);
static inline void Normal3xvOES(const GLfixed * coords1)
{
	static PFNGLNORMAL3XVOESPROC_HPP fn=reinterpret_cast<PFNGLNORMAL3XVOESPROC_HPP>(_impl::_get_proc_address("glNormal3xvOES","GL_OES_fixed_point"));
	 fn(coords1);
}
typedef void (*PFNGLORTHOXOESPROC_HPP)(GLfixed,GLfixed,GLfixed,GLfixed,GLfixed,GLfixed);
static inline void OrthoxOES(GLfixed l1,GLfixed r1,GLfixed b1,GLfixed t1,GLfixed n1,GLfixed f1)
{
	static PFNGLORTHOXOESPROC_HPP fn=reinterpret_cast<PFNGLORTHOXOESPROC_HPP>(_impl::_get_proc_address("glOrthoxOES","GL_OES_fixed_point"));
	 fn(l1,r1,b1,t1,n1,f1);
}
typedef void (*PFNGLPASSTHROUGHXOESPROC_HPP)(GLfixed);
static inline void PassThroughxOES(GLfixed token1)
{
	static PFNGLPASSTHROUGHXOESPROC_HPP fn=reinterpret_cast<PFNGLPASSTHROUGHXOESPROC_HPP>(_impl::_get_proc_address("glPassThroughxOES","GL_OES_fixed_point"));
	 fn(token1);
}
typedef void (*PFNGLPIXELMAPXPROC_HPP)(GLenum,GLint,const GLfixed *);
static inline void PixelMapx(GLenum map1,GLint size1,const GLfixed * values1)
{
	static PFNGLPIXELMAPXPROC_HPP fn=reinterpret_cast<PFNGLPIXELMAPXPROC_HPP>(_impl::_get_proc_address("glPixelMapx","GL_OES_fixed_point"));
	 fn(map1,size1,values1);
}
typedef void (*PFNGLPIXELSTOREXPROC_HPP)(GLenum,GLfixed);
static inline void PixelStorex(GLenum pname1,GLfixed param1)
{
	static PFNGLPIXELSTOREXPROC_HPP fn=reinterpret_cast<PFNGLPIXELSTOREXPROC_HPP>(_impl::_get_proc_address("glPixelStorex","GL_OES_fixed_point"));
	 fn(pname1,param1);
}
typedef void (*PFNGLPIXELTRANSFERXOESPROC_HPP)(GLenum,GLfixed);
static inline void PixelTransferxOES(GLenum pname1,GLfixed param1)
{
	static PFNGLPIXELTRANSFERXOESPROC_HPP fn=reinterpret_cast<PFNGLPIXELTRANSFERXOESPROC_HPP>(_impl::_get_proc_address("glPixelTransferxOES","GL_OES_fixed_point"));
	 fn(pname1,param1);
}
typedef void (*PFNGLPIXELZOOMXOESPROC_HPP)(GLfixed,GLfixed);
static inline void PixelZoomxOES(GLfixed xfactor1,GLfixed yfactor1)
{
	static PFNGLPIXELZOOMXOESPROC_HPP fn=reinterpret_cast<PFNGLPIXELZOOMXOESPROC_HPP>(_impl::_get_proc_address("glPixelZoomxOES","GL_OES_fixed_point"));
	 fn(xfactor1,yfactor1);
}
typedef void (*PFNGLPOINTPARAMETERXOESPROC_HPP)(GLenum,GLfixed);
static inline void PointParameterxOES(GLenum pname1,GLfixed param1)
{
	static PFNGLPOINTPARAMETERXOESPROC_HPP fn=reinterpret_cast<PFNGLPOINTPARAMETERXOESPROC_HPP>(_impl::_get_proc_address("glPointParameterxOES","GL_OES_fixed_point"));
	 fn(pname1,param1);
}
typedef void (*PFNGLPOINTPARAMETERXVOESPROC_HPP)(GLenum,const GLfixed *);
static inline void PointParameterxvOES(GLenum pname1,const GLfixed * params1)
{
	static PFNGLPOINTPARAMETERXVOESPROC_HPP fn=reinterpret_cast<PFNGLPOINTPARAMETERXVOESPROC_HPP>(_impl::_get_proc_address("glPointParameterxvOES","GL_OES_fixed_point"));
	 fn(pname1,params1);
}
typedef void (*PFNGLPOINTSIZEXOESPROC_HPP)(GLfixed);
static inline void PointSizexOES(GLfixed size1)
{
	static PFNGLPOINTSIZEXOESPROC_HPP fn=reinterpret_cast<PFNGLPOINTSIZEXOESPROC_HPP>(_impl::_get_proc_address("glPointSizexOES","GL_OES_fixed_point"));
	 fn(size1);
}
typedef void (*PFNGLPOLYGONOFFSETXOESPROC_HPP)(GLfixed,GLfixed);
static inline void PolygonOffsetxOES(GLfixed factor1,GLfixed units1)
{
	static PFNGLPOLYGONOFFSETXOESPROC_HPP fn=reinterpret_cast<PFNGLPOLYGONOFFSETXOESPROC_HPP>(_impl::_get_proc_address("glPolygonOffsetxOES","GL_OES_fixed_point"));
	 fn(factor1,units1);
}
typedef void (*PFNGLPRIORITIZETEXTURESXOESPROC_HPP)(GLsizei,const GLuint *,const GLfixed *);
static inline void PrioritizeTexturesxOES(GLsizei n1,const GLuint * textures1,const GLfixed * priorities1)
{
	static PFNGLPRIORITIZETEXTURESXOESPROC_HPP fn=reinterpret_cast<PFNGLPRIORITIZETEXTURESXOESPROC_HPP>(_impl::_get_proc_address("glPrioritizeTexturesxOES","GL_OES_fixed_point"));
	 fn(n1,textures1,priorities1);
}
typedef void (*PFNGLRASTERPOS2XOESPROC_HPP)(GLfixed,GLfixed);
static inline void RasterPos2xOES(GLfixed x1,GLfixed y1)
{
	static PFNGLRASTERPOS2XOESPROC_HPP fn=reinterpret_cast<PFNGLRASTERPOS2XOESPROC_HPP>(_impl::_get_proc_address("glRasterPos2xOES","GL_OES_fixed_point"));
	 fn(x1,y1);
}
typedef void (*PFNGLRASTERPOS2XVOESPROC_HPP)(const GLfixed *);
static inline void RasterPos2xvOES(const GLfixed * coords1)
{
	static PFNGLRASTERPOS2XVOESPROC_HPP fn=reinterpret_cast<PFNGLRASTERPOS2XVOESPROC_HPP>(_impl::_get_proc_address("glRasterPos2xvOES","GL_OES_fixed_point"));
	 fn(coords1);
}
typedef void (*PFNGLRASTERPOS3XOESPROC_HPP)(GLfixed,GLfixed,GLfixed);
static inline void RasterPos3xOES(GLfixed x1,GLfixed y1,GLfixed z1)
{
	static PFNGLRASTERPOS3XOESPROC_HPP fn=reinterpret_cast<PFNGLRASTERPOS3XOESPROC_HPP>(_impl::_get_proc_address("glRasterPos3xOES","GL_OES_fixed_point"));
	 fn(x1,y1,z1);
}
typedef void (*PFNGLRASTERPOS3XVOESPROC_HPP)(const GLfixed *);
static inline void RasterPos3xvOES(const GLfixed * coords1)
{
	static PFNGLRASTERPOS3XVOESPROC_HPP fn=reinterpret_cast<PFNGLRASTERPOS3XVOESPROC_HPP>(_impl::_get_proc_address("glRasterPos3xvOES","GL_OES_fixed_point"));
	 fn(coords1);
}
typedef void (*PFNGLRASTERPOS4XOESPROC_HPP)(GLfixed,GLfixed,GLfixed,GLfixed);
static inline void RasterPos4xOES(GLfixed x1,GLfixed y1,GLfixed z1,GLfixed w1)
{
	static PFNGLRASTERPOS4XOESPROC_HPP fn=reinterpret_cast<PFNGLRASTERPOS4XOESPROC_HPP>(_impl::_get_proc_address("glRasterPos4xOES","GL_OES_fixed_point"));
	 fn(x1,y1,z1,w1);
}
typedef void (*PFNGLRASTERPOS4XVOESPROC_HPP)(const GLfixed *);
static inline void RasterPos4xvOES(const GLfixed * coords1)
{
	static PFNGLRASTERPOS4XVOESPROC_HPP fn=reinterpret_cast<PFNGLRASTERPOS4XVOESPROC_HPP>(_impl::_get_proc_address("glRasterPos4xvOES","GL_OES_fixed_point"));
	 fn(coords1);
}
typedef void (*PFNGLRECTXOESPROC_HPP)(GLfixed,GLfixed,GLfixed,GLfixed);
static inline void RectxOES(GLfixed x11,GLfixed y11,GLfixed x21,GLfixed y21)
{
	static PFNGLRECTXOESPROC_HPP fn=reinterpret_cast<PFNGLRECTXOESPROC_HPP>(_impl::_get_proc_address("glRectxOES","GL_OES_fixed_point"));
	 fn(x11,y11,x21,y21);
}
typedef void (*PFNGLRECTXVOESPROC_HPP)(const GLfixed *,const GLfixed *);
static inline void RectxvOES(const GLfixed * v11,const GLfixed * v21)
{
	static PFNGLRECTXVOESPROC_HPP fn=reinterpret_cast<PFNGLRECTXVOESPROC_HPP>(_impl::_get_proc_address("glRectxvOES","GL_OES_fixed_point"));
	 fn(v11,v21);
}
typedef void (*PFNGLROTATEXOESPROC_HPP)(GLfixed,GLfixed,GLfixed,GLfixed);
static inline void RotatexOES(GLfixed angle1,GLfixed x1,GLfixed y1,GLfixed z1)
{
	static PFNGLROTATEXOESPROC_HPP fn=reinterpret_cast<PFNGLROTATEXOESPROC_HPP>(_impl::_get_proc_address("glRotatexOES","GL_OES_fixed_point"));
	 fn(angle1,x1,y1,z1);
}
typedef void (*PFNGLSAMPLECOVERAGEOESPROC_HPP)(GLfixed,GLboolean);
static inline void SampleCoverageOES(GLfixed value1,GLboolean invert1)
{
	static PFNGLSAMPLECOVERAGEOESPROC_HPP fn=reinterpret_cast<PFNGLSAMPLECOVERAGEOESPROC_HPP>(_impl::_get_proc_address("glSampleCoverageOES","GL_OES_fixed_point"));
	 fn(value1,invert1);
}
typedef void (*PFNGLSAMPLECOVERAGEXOESPROC_HPP)(GLclampx,GLboolean);
static inline void SampleCoveragexOES(GLclampx value1,GLboolean invert1)
{
	static PFNGLSAMPLECOVERAGEXOESPROC_HPP fn=reinterpret_cast<PFNGLSAMPLECOVERAGEXOESPROC_HPP>(_impl::_get_proc_address("glSampleCoveragexOES","GL_OES_fixed_point"));
	 fn(value1,invert1);
}
typedef void (*PFNGLSCALEXOESPROC_HPP)(GLfixed,GLfixed,GLfixed);
static inline void ScalexOES(GLfixed x1,GLfixed y1,GLfixed z1)
{
	static PFNGLSCALEXOESPROC_HPP fn=reinterpret_cast<PFNGLSCALEXOESPROC_HPP>(_impl::_get_proc_address("glScalexOES","GL_OES_fixed_point"));
	 fn(x1,y1,z1);
}
typedef void (*PFNGLTEXCOORD1XOESPROC_HPP)(GLfixed);
static inline void TexCoord1xOES(GLfixed s1)
{
	static PFNGLTEXCOORD1XOESPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD1XOESPROC_HPP>(_impl::_get_proc_address("glTexCoord1xOES","GL_OES_fixed_point"));
	 fn(s1);
}
typedef void (*PFNGLTEXCOORD1XVOESPROC_HPP)(const GLfixed *);
static inline void TexCoord1xvOES(const GLfixed * coords1)
{
	static PFNGLTEXCOORD1XVOESPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD1XVOESPROC_HPP>(_impl::_get_proc_address("glTexCoord1xvOES","GL_OES_fixed_point"));
	 fn(coords1);
}
typedef void (*PFNGLTEXCOORD2XOESPROC_HPP)(GLfixed,GLfixed);
static inline void TexCoord2xOES(GLfixed s1,GLfixed t1)
{
	static PFNGLTEXCOORD2XOESPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD2XOESPROC_HPP>(_impl::_get_proc_address("glTexCoord2xOES","GL_OES_fixed_point"));
	 fn(s1,t1);
}
typedef void (*PFNGLTEXCOORD2XVOESPROC_HPP)(const GLfixed *);
static inline void TexCoord2xvOES(const GLfixed * coords1)
{
	static PFNGLTEXCOORD2XVOESPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD2XVOESPROC_HPP>(_impl::_get_proc_address("glTexCoord2xvOES","GL_OES_fixed_point"));
	 fn(coords1);
}
typedef void (*PFNGLTEXCOORD3XOESPROC_HPP)(GLfixed,GLfixed,GLfixed);
static inline void TexCoord3xOES(GLfixed s1,GLfixed t1,GLfixed r1)
{
	static PFNGLTEXCOORD3XOESPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD3XOESPROC_HPP>(_impl::_get_proc_address("glTexCoord3xOES","GL_OES_fixed_point"));
	 fn(s1,t1,r1);
}
typedef void (*PFNGLTEXCOORD3XVOESPROC_HPP)(const GLfixed *);
static inline void TexCoord3xvOES(const GLfixed * coords1)
{
	static PFNGLTEXCOORD3XVOESPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD3XVOESPROC_HPP>(_impl::_get_proc_address("glTexCoord3xvOES","GL_OES_fixed_point"));
	 fn(coords1);
}
typedef void (*PFNGLTEXCOORD4XOESPROC_HPP)(GLfixed,GLfixed,GLfixed,GLfixed);
static inline void TexCoord4xOES(GLfixed s1,GLfixed t1,GLfixed r1,GLfixed q1)
{
	static PFNGLTEXCOORD4XOESPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD4XOESPROC_HPP>(_impl::_get_proc_address("glTexCoord4xOES","GL_OES_fixed_point"));
	 fn(s1,t1,r1,q1);
}
typedef void (*PFNGLTEXCOORD4XVOESPROC_HPP)(const GLfixed *);
static inline void TexCoord4xvOES(const GLfixed * coords1)
{
	static PFNGLTEXCOORD4XVOESPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD4XVOESPROC_HPP>(_impl::_get_proc_address("glTexCoord4xvOES","GL_OES_fixed_point"));
	 fn(coords1);
}
typedef void (*PFNGLTEXENVXOESPROC_HPP)(GLenum,GLenum,GLfixed);
static inline void TexEnvxOES(GLenum target1,GLenum pname1,GLfixed param1)
{
	static PFNGLTEXENVXOESPROC_HPP fn=reinterpret_cast<PFNGLTEXENVXOESPROC_HPP>(_impl::_get_proc_address("glTexEnvxOES","GL_OES_fixed_point"));
	 fn(target1,pname1,param1);
}
typedef void (*PFNGLTEXENVXVOESPROC_HPP)(GLenum,GLenum,const GLfixed *);
static inline void TexEnvxvOES(GLenum target1,GLenum pname1,const GLfixed * params1)
{
	static PFNGLTEXENVXVOESPROC_HPP fn=reinterpret_cast<PFNGLTEXENVXVOESPROC_HPP>(_impl::_get_proc_address("glTexEnvxvOES","GL_OES_fixed_point"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLTEXGENXOESPROC_HPP)(GLenum,GLenum,GLfixed);
static inline void TexGenxOES(GLenum coord1,GLenum pname1,GLfixed param1)
{
	static PFNGLTEXGENXOESPROC_HPP fn=reinterpret_cast<PFNGLTEXGENXOESPROC_HPP>(_impl::_get_proc_address("glTexGenxOES","GL_OES_fixed_point"));
	 fn(coord1,pname1,param1);
}
typedef void (*PFNGLTEXGENXVOESPROC_HPP)(GLenum,GLenum,const GLfixed *);
static inline void TexGenxvOES(GLenum coord1,GLenum pname1,const GLfixed * params1)
{
	static PFNGLTEXGENXVOESPROC_HPP fn=reinterpret_cast<PFNGLTEXGENXVOESPROC_HPP>(_impl::_get_proc_address("glTexGenxvOES","GL_OES_fixed_point"));
	 fn(coord1,pname1,params1);
}
typedef void (*PFNGLTEXPARAMETERXOESPROC_HPP)(GLenum,GLenum,GLfixed);
static inline void TexParameterxOES(GLenum target1,GLenum pname1,GLfixed param1)
{
	static PFNGLTEXPARAMETERXOESPROC_HPP fn=reinterpret_cast<PFNGLTEXPARAMETERXOESPROC_HPP>(_impl::_get_proc_address("glTexParameterxOES","GL_OES_fixed_point"));
	 fn(target1,pname1,param1);
}
typedef void (*PFNGLTEXPARAMETERXVOESPROC_HPP)(GLenum,GLenum,const GLfixed *);
static inline void TexParameterxvOES(GLenum target1,GLenum pname1,const GLfixed * params1)
{
	static PFNGLTEXPARAMETERXVOESPROC_HPP fn=reinterpret_cast<PFNGLTEXPARAMETERXVOESPROC_HPP>(_impl::_get_proc_address("glTexParameterxvOES","GL_OES_fixed_point"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLTRANSLATEXOESPROC_HPP)(GLfixed,GLfixed,GLfixed);
static inline void TranslatexOES(GLfixed x1,GLfixed y1,GLfixed z1)
{
	static PFNGLTRANSLATEXOESPROC_HPP fn=reinterpret_cast<PFNGLTRANSLATEXOESPROC_HPP>(_impl::_get_proc_address("glTranslatexOES","GL_OES_fixed_point"));
	 fn(x1,y1,z1);
}
typedef void (*PFNGLVERTEX2XOESPROC_HPP)(GLfixed);
static inline void Vertex2xOES(GLfixed x1)
{
	static PFNGLVERTEX2XOESPROC_HPP fn=reinterpret_cast<PFNGLVERTEX2XOESPROC_HPP>(_impl::_get_proc_address("glVertex2xOES","GL_OES_fixed_point"));
	 fn(x1);
}
typedef void (*PFNGLVERTEX2XVOESPROC_HPP)(const GLfixed *);
static inline void Vertex2xvOES(const GLfixed * coords1)
{
	static PFNGLVERTEX2XVOESPROC_HPP fn=reinterpret_cast<PFNGLVERTEX2XVOESPROC_HPP>(_impl::_get_proc_address("glVertex2xvOES","GL_OES_fixed_point"));
	 fn(coords1);
}
typedef void (*PFNGLVERTEX3XOESPROC_HPP)(GLfixed,GLfixed);
static inline void Vertex3xOES(GLfixed x1,GLfixed y1)
{
	static PFNGLVERTEX3XOESPROC_HPP fn=reinterpret_cast<PFNGLVERTEX3XOESPROC_HPP>(_impl::_get_proc_address("glVertex3xOES","GL_OES_fixed_point"));
	 fn(x1,y1);
}
typedef void (*PFNGLVERTEX3XVOESPROC_HPP)(const GLfixed *);
static inline void Vertex3xvOES(const GLfixed * coords1)
{
	static PFNGLVERTEX3XVOESPROC_HPP fn=reinterpret_cast<PFNGLVERTEX3XVOESPROC_HPP>(_impl::_get_proc_address("glVertex3xvOES","GL_OES_fixed_point"));
	 fn(coords1);
}
typedef void (*PFNGLVERTEX4XOESPROC_HPP)(GLfixed,GLfixed,GLfixed);
static inline void Vertex4xOES(GLfixed x1,GLfixed y1,GLfixed z1)
{
	static PFNGLVERTEX4XOESPROC_HPP fn=reinterpret_cast<PFNGLVERTEX4XOESPROC_HPP>(_impl::_get_proc_address("glVertex4xOES","GL_OES_fixed_point"));
	 fn(x1,y1,z1);
}
typedef void (*PFNGLVERTEX4XVOESPROC_HPP)(const GLfixed *);
static inline void Vertex4xvOES(const GLfixed * coords1)
{
	static PFNGLVERTEX4XVOESPROC_HPP fn=reinterpret_cast<PFNGLVERTEX4XVOESPROC_HPP>(_impl::_get_proc_address("glVertex4xvOES","GL_OES_fixed_point"));
	 fn(coords1);
}}
#endif

#ifndef GL_OES_query_matrix
#define GL_OES_query_matrix
extern "C" {
}
namespace gl{

typedef GLbitfield (*PFNGLQUERYMATRIXXOESPROC_HPP)(GLfixed *,GLint *);
static inline GLbitfield QueryMatrixxOES(GLfixed * mantissa1,GLint * exponent1)
{
	static PFNGLQUERYMATRIXXOESPROC_HPP fn=reinterpret_cast<PFNGLQUERYMATRIXXOESPROC_HPP>(_impl::_get_proc_address("glQueryMatrixxOES","GL_OES_query_matrix"));
	return fn(mantissa1,exponent1);
}}
#endif

#ifndef GL_OES_read_format
#define GL_OES_read_format
#ifndef GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A
#endif //GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
#ifndef GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B
#endif //GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_OES_single_precision
#define GL_OES_single_precision
extern "C" {
}
namespace gl{

typedef void (*PFNGLCLEARDEPTHFOESPROC_HPP)(GLclampf);
static inline void ClearDepthfOES(GLclampf depth1)
{
	static PFNGLCLEARDEPTHFOESPROC_HPP fn=reinterpret_cast<PFNGLCLEARDEPTHFOESPROC_HPP>(_impl::_get_proc_address("glClearDepthfOES","GL_OES_single_precision"));
	 fn(depth1);
}
typedef void (*PFNGLCLIPPLANEFOESPROC_HPP)(GLenum,const GLfloat *);
static inline void ClipPlanefOES(GLenum plane1,const GLfloat * equation1)
{
	static PFNGLCLIPPLANEFOESPROC_HPP fn=reinterpret_cast<PFNGLCLIPPLANEFOESPROC_HPP>(_impl::_get_proc_address("glClipPlanefOES","GL_OES_single_precision"));
	 fn(plane1,equation1);
}
typedef void (*PFNGLDEPTHRANGEFOESPROC_HPP)(GLclampf,GLclampf);
static inline void DepthRangefOES(GLclampf n1,GLclampf f1)
{
	static PFNGLDEPTHRANGEFOESPROC_HPP fn=reinterpret_cast<PFNGLDEPTHRANGEFOESPROC_HPP>(_impl::_get_proc_address("glDepthRangefOES","GL_OES_single_precision"));
	 fn(n1,f1);
}
typedef void (*PFNGLFRUSTUMFOESPROC_HPP)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void FrustumfOES(GLfloat l1,GLfloat r1,GLfloat b1,GLfloat t1,GLfloat n1,GLfloat f1)
{
	static PFNGLFRUSTUMFOESPROC_HPP fn=reinterpret_cast<PFNGLFRUSTUMFOESPROC_HPP>(_impl::_get_proc_address("glFrustumfOES","GL_OES_single_precision"));
	 fn(l1,r1,b1,t1,n1,f1);
}
typedef void (*PFNGLGETCLIPPLANEFOESPROC_HPP)(GLenum,GLfloat *);
static inline void GetClipPlanefOES(GLenum plane1,GLfloat * equation1)
{
	static PFNGLGETCLIPPLANEFOESPROC_HPP fn=reinterpret_cast<PFNGLGETCLIPPLANEFOESPROC_HPP>(_impl::_get_proc_address("glGetClipPlanefOES","GL_OES_single_precision"));
	 fn(plane1,equation1);
}
typedef void (*PFNGLORTHOFOESPROC_HPP)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void OrthofOES(GLfloat l1,GLfloat r1,GLfloat b1,GLfloat t1,GLfloat n1,GLfloat f1)
{
	static PFNGLORTHOFOESPROC_HPP fn=reinterpret_cast<PFNGLORTHOFOESPROC_HPP>(_impl::_get_proc_address("glOrthofOES","GL_OES_single_precision"));
	 fn(l1,r1,b1,t1,n1,f1);
}}
#endif

#ifndef GL_OML_interlace
#define GL_OML_interlace
#ifndef GL_INTERLACE_OML
#define GL_INTERLACE_OML 0x8980
#endif //GL_INTERLACE_OML
#ifndef GL_INTERLACE_READ_OML
#define GL_INTERLACE_READ_OML 0x8981
#endif //GL_INTERLACE_READ_OML
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_OML_resample
#define GL_OML_resample
#ifndef GL_PACK_RESAMPLE_OML
#define GL_PACK_RESAMPLE_OML 0x8984
#endif //GL_PACK_RESAMPLE_OML
#ifndef GL_UNPACK_RESAMPLE_OML
#define GL_UNPACK_RESAMPLE_OML 0x8985
#endif //GL_UNPACK_RESAMPLE_OML
#ifndef GL_RESAMPLE_REPLICATE_OML
#define GL_RESAMPLE_REPLICATE_OML 0x8986
#endif //GL_RESAMPLE_REPLICATE_OML
#ifndef GL_RESAMPLE_ZERO_FILL_OML
#define GL_RESAMPLE_ZERO_FILL_OML 0x8987
#endif //GL_RESAMPLE_ZERO_FILL_OML
#ifndef GL_RESAMPLE_AVERAGE_OML
#define GL_RESAMPLE_AVERAGE_OML 0x8988
#endif //GL_RESAMPLE_AVERAGE_OML
#ifndef GL_RESAMPLE_DECIMATE_OML
#define GL_RESAMPLE_DECIMATE_OML 0x8989
#endif //GL_RESAMPLE_DECIMATE_OML
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_OML_subsample
#define GL_OML_subsample
#ifndef GL_FORMAT_SUBSAMPLE_24_24_OML
#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982
#endif //GL_FORMAT_SUBSAMPLE_24_24_OML
#ifndef GL_FORMAT_SUBSAMPLE_244_244_OML
#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983
#endif //GL_FORMAT_SUBSAMPLE_244_244_OML
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_PGI_misc_hints
#define GL_PGI_misc_hints
#ifndef GL_PREFER_DOUBLEBUFFER_HINT_PGI
#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8
#endif //GL_PREFER_DOUBLEBUFFER_HINT_PGI
#ifndef GL_CONSERVE_MEMORY_HINT_PGI
#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD
#endif //GL_CONSERVE_MEMORY_HINT_PGI
#ifndef GL_RECLAIM_MEMORY_HINT_PGI
#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE
#endif //GL_RECLAIM_MEMORY_HINT_PGI
#ifndef GL_NATIVE_GRAPHICS_HANDLE_PGI
#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202
#endif //GL_NATIVE_GRAPHICS_HANDLE_PGI
#ifndef GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI
#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203
#endif //GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI
#ifndef GL_NATIVE_GRAPHICS_END_HINT_PGI
#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204
#endif //GL_NATIVE_GRAPHICS_END_HINT_PGI
#ifndef GL_ALWAYS_FAST_HINT_PGI
#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C
#endif //GL_ALWAYS_FAST_HINT_PGI
#ifndef GL_ALWAYS_SOFT_HINT_PGI
#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D
#endif //GL_ALWAYS_SOFT_HINT_PGI
#ifndef GL_ALLOW_DRAW_OBJ_HINT_PGI
#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E
#endif //GL_ALLOW_DRAW_OBJ_HINT_PGI
#ifndef GL_ALLOW_DRAW_WIN_HINT_PGI
#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F
#endif //GL_ALLOW_DRAW_WIN_HINT_PGI
#ifndef GL_ALLOW_DRAW_FRG_HINT_PGI
#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210
#endif //GL_ALLOW_DRAW_FRG_HINT_PGI
#ifndef GL_ALLOW_DRAW_MEM_HINT_PGI
#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211
#endif //GL_ALLOW_DRAW_MEM_HINT_PGI
#ifndef GL_STRICT_DEPTHFUNC_HINT_PGI
#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216
#endif //GL_STRICT_DEPTHFUNC_HINT_PGI
#ifndef GL_STRICT_LIGHTING_HINT_PGI
#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217
#endif //GL_STRICT_LIGHTING_HINT_PGI
#ifndef GL_STRICT_SCISSOR_HINT_PGI
#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218
#endif //GL_STRICT_SCISSOR_HINT_PGI
#ifndef GL_FULL_STIPPLE_HINT_PGI
#define GL_FULL_STIPPLE_HINT_PGI 0x1A219
#endif //GL_FULL_STIPPLE_HINT_PGI
#ifndef GL_CLIP_NEAR_HINT_PGI
#define GL_CLIP_NEAR_HINT_PGI 0x1A220
#endif //GL_CLIP_NEAR_HINT_PGI
#ifndef GL_CLIP_FAR_HINT_PGI
#define GL_CLIP_FAR_HINT_PGI 0x1A221
#endif //GL_CLIP_FAR_HINT_PGI
#ifndef GL_WIDE_LINE_HINT_PGI
#define GL_WIDE_LINE_HINT_PGI 0x1A222
#endif //GL_WIDE_LINE_HINT_PGI
#ifndef GL_BACK_NORMALS_HINT_PGI
#define GL_BACK_NORMALS_HINT_PGI 0x1A223
#endif //GL_BACK_NORMALS_HINT_PGI
extern "C" {
}
namespace gl{

typedef void (*PFNGLHINTPGIPROC_HPP)(GLenum,GLint);
static inline void HintPGI(GLenum target1,GLint mode1)
{
	static PFNGLHINTPGIPROC_HPP fn=reinterpret_cast<PFNGLHINTPGIPROC_HPP>(_impl::_get_proc_address("glHintPGI","GL_PGI_misc_hints"));
	 fn(target1,mode1);
}}
#endif

#ifndef GL_PGI_vertex_hints
#define GL_PGI_vertex_hints
#ifndef GL_VERTEX23_BIT_PGI
#define GL_VERTEX23_BIT_PGI 0x00000004
#endif //GL_VERTEX23_BIT_PGI
#ifndef GL_VERTEX4_BIT_PGI
#define GL_VERTEX4_BIT_PGI 0x00000008
#endif //GL_VERTEX4_BIT_PGI
#ifndef GL_COLOR3_BIT_PGI
#define GL_COLOR3_BIT_PGI 0x00010000
#endif //GL_COLOR3_BIT_PGI
#ifndef GL_COLOR4_BIT_PGI
#define GL_COLOR4_BIT_PGI 0x00020000
#endif //GL_COLOR4_BIT_PGI
#ifndef GL_EDGEFLAG_BIT_PGI
#define GL_EDGEFLAG_BIT_PGI 0x00040000
#endif //GL_EDGEFLAG_BIT_PGI
#ifndef GL_INDEX_BIT_PGI
#define GL_INDEX_BIT_PGI 0x00080000
#endif //GL_INDEX_BIT_PGI
#ifndef GL_MAT_AMBIENT_BIT_PGI
#define GL_MAT_AMBIENT_BIT_PGI 0x00100000
#endif //GL_MAT_AMBIENT_BIT_PGI
#ifndef GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI
#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000
#endif //GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI
#ifndef GL_MAT_DIFFUSE_BIT_PGI
#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000
#endif //GL_MAT_DIFFUSE_BIT_PGI
#ifndef GL_MAT_EMISSION_BIT_PGI
#define GL_MAT_EMISSION_BIT_PGI 0x00800000
#endif //GL_MAT_EMISSION_BIT_PGI
#ifndef GL_MAT_COLOR_INDEXES_BIT_PGI
#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000
#endif //GL_MAT_COLOR_INDEXES_BIT_PGI
#ifndef GL_MAT_SHININESS_BIT_PGI
#define GL_MAT_SHININESS_BIT_PGI 0x02000000
#endif //GL_MAT_SHININESS_BIT_PGI
#ifndef GL_MAT_SPECULAR_BIT_PGI
#define GL_MAT_SPECULAR_BIT_PGI 0x04000000
#endif //GL_MAT_SPECULAR_BIT_PGI
#ifndef GL_NORMAL_BIT_PGI
#define GL_NORMAL_BIT_PGI 0x08000000
#endif //GL_NORMAL_BIT_PGI
#ifndef GL_TEXCOORD1_BIT_PGI
#define GL_TEXCOORD1_BIT_PGI 0x10000000
#endif //GL_TEXCOORD1_BIT_PGI
#ifndef GL_VERTEX_DATA_HINT_PGI
#define GL_VERTEX_DATA_HINT_PGI 0x1A22A
#endif //GL_VERTEX_DATA_HINT_PGI
#ifndef GL_VERTEX_CONSISTENT_HINT_PGI
#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B
#endif //GL_VERTEX_CONSISTENT_HINT_PGI
#ifndef GL_MATERIAL_SIDE_HINT_PGI
#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C
#endif //GL_MATERIAL_SIDE_HINT_PGI
#ifndef GL_MAX_VERTEX_HINT_PGI
#define GL_MAX_VERTEX_HINT_PGI 0x1A22D
#endif //GL_MAX_VERTEX_HINT_PGI
#ifndef GL_TEXCOORD2_BIT_PGI
#define GL_TEXCOORD2_BIT_PGI 0x20000000
#endif //GL_TEXCOORD2_BIT_PGI
#ifndef GL_TEXCOORD3_BIT_PGI
#define GL_TEXCOORD3_BIT_PGI 0x40000000
#endif //GL_TEXCOORD3_BIT_PGI
#ifndef GL_TEXCOORD4_BIT_PGI
#define GL_TEXCOORD4_BIT_PGI 0x80000000
#endif //GL_TEXCOORD4_BIT_PGI
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_REND_screen_coordinates
#define GL_REND_screen_coordinates
#ifndef GL_SCREEN_COORDINATES_REND
#define GL_SCREEN_COORDINATES_REND 0x8490
#endif //GL_SCREEN_COORDINATES_REND
#ifndef GL_INVERTED_SCREEN_W_REND
#define GL_INVERTED_SCREEN_W_REND 0x8491
#endif //GL_INVERTED_SCREEN_W_REND
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_S3_s3tc
#define GL_S3_s3tc
#ifndef GL_RGB_S3TC
#define GL_RGB_S3TC 0x83A0
#endif //GL_RGB_S3TC
#ifndef GL_RGB4_S3TC
#define GL_RGB4_S3TC 0x83A1
#endif //GL_RGB4_S3TC
#ifndef GL_RGBA_S3TC
#define GL_RGBA_S3TC 0x83A2
#endif //GL_RGBA_S3TC
#ifndef GL_RGBA4_S3TC
#define GL_RGBA4_S3TC 0x83A3
#endif //GL_RGBA4_S3TC
#ifndef GL_RGBA_DXT5_S3TC
#define GL_RGBA_DXT5_S3TC 0x83A4
#endif //GL_RGBA_DXT5_S3TC
#ifndef GL_RGBA4_DXT5_S3TC
#define GL_RGBA4_DXT5_S3TC 0x83A5
#endif //GL_RGBA4_DXT5_S3TC
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIS_detail_texture
#define GL_SGIS_detail_texture
#ifndef GL_DETAIL_TEXTURE_2D_SGIS
#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095
#endif //GL_DETAIL_TEXTURE_2D_SGIS
#ifndef GL_DETAIL_TEXTURE_2D_BINDING_SGIS
#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096
#endif //GL_DETAIL_TEXTURE_2D_BINDING_SGIS
#ifndef GL_LINEAR_DETAIL_SGIS
#define GL_LINEAR_DETAIL_SGIS 0x8097
#endif //GL_LINEAR_DETAIL_SGIS
#ifndef GL_LINEAR_DETAIL_ALPHA_SGIS
#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098
#endif //GL_LINEAR_DETAIL_ALPHA_SGIS
#ifndef GL_LINEAR_DETAIL_COLOR_SGIS
#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099
#endif //GL_LINEAR_DETAIL_COLOR_SGIS
#ifndef GL_DETAIL_TEXTURE_LEVEL_SGIS
#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A
#endif //GL_DETAIL_TEXTURE_LEVEL_SGIS
#ifndef GL_DETAIL_TEXTURE_MODE_SGIS
#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B
#endif //GL_DETAIL_TEXTURE_MODE_SGIS
#ifndef GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS
#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C
#endif //GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS
extern "C" {
}
namespace gl{

typedef void (*PFNGLDETAILTEXFUNCSGISPROC_HPP)(GLenum,GLsizei,const GLfloat *);
static inline void DetailTexFuncSGIS(GLenum target1,GLsizei n1,const GLfloat * points1)
{
	static PFNGLDETAILTEXFUNCSGISPROC_HPP fn=reinterpret_cast<PFNGLDETAILTEXFUNCSGISPROC_HPP>(_impl::_get_proc_address("glDetailTexFuncSGIS","GL_SGIS_detail_texture"));
	 fn(target1,n1,points1);
}
typedef void (*PFNGLGETDETAILTEXFUNCSGISPROC_HPP)(GLenum,GLfloat *);
static inline void GetDetailTexFuncSGIS(GLenum target1,GLfloat * points1)
{
	static PFNGLGETDETAILTEXFUNCSGISPROC_HPP fn=reinterpret_cast<PFNGLGETDETAILTEXFUNCSGISPROC_HPP>(_impl::_get_proc_address("glGetDetailTexFuncSGIS","GL_SGIS_detail_texture"));
	 fn(target1,points1);
}}
#endif

#ifndef GL_SGIS_fog_function
#define GL_SGIS_fog_function
#ifndef GL_FOG_FUNC_SGIS
#define GL_FOG_FUNC_SGIS 0x812A
#endif //GL_FOG_FUNC_SGIS
#ifndef GL_FOG_FUNC_POINTS_SGIS
#define GL_FOG_FUNC_POINTS_SGIS 0x812B
#endif //GL_FOG_FUNC_POINTS_SGIS
#ifndef GL_MAX_FOG_FUNC_POINTS_SGIS
#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C
#endif //GL_MAX_FOG_FUNC_POINTS_SGIS
extern "C" {
}
namespace gl{

typedef void (*PFNGLFOGFUNCSGISPROC_HPP)(GLsizei,const GLfloat *);
static inline void FogFuncSGIS(GLsizei n1,const GLfloat * points1)
{
	static PFNGLFOGFUNCSGISPROC_HPP fn=reinterpret_cast<PFNGLFOGFUNCSGISPROC_HPP>(_impl::_get_proc_address("glFogFuncSGIS","GL_SGIS_fog_function"));
	 fn(n1,points1);
}
typedef void (*PFNGLGETFOGFUNCSGISPROC_HPP)(GLfloat *);
static inline void GetFogFuncSGIS(GLfloat * points1)
{
	static PFNGLGETFOGFUNCSGISPROC_HPP fn=reinterpret_cast<PFNGLGETFOGFUNCSGISPROC_HPP>(_impl::_get_proc_address("glGetFogFuncSGIS","GL_SGIS_fog_function"));
	 fn(points1);
}}
#endif

#ifndef GL_SGIS_generate_mipmap
#define GL_SGIS_generate_mipmap
#ifndef GL_GENERATE_MIPMAP_SGIS
#define GL_GENERATE_MIPMAP_SGIS 0x8191
#endif //GL_GENERATE_MIPMAP_SGIS
#ifndef GL_GENERATE_MIPMAP_HINT_SGIS
#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192
#endif //GL_GENERATE_MIPMAP_HINT_SGIS
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIS_multisample
#define GL_SGIS_multisample
#ifndef GL_MULTISAMPLE_SGIS
#define GL_MULTISAMPLE_SGIS 0x809D
#endif //GL_MULTISAMPLE_SGIS
#ifndef GL_SAMPLE_ALPHA_TO_MASK_SGIS
#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E
#endif //GL_SAMPLE_ALPHA_TO_MASK_SGIS
#ifndef GL_SAMPLE_ALPHA_TO_ONE_SGIS
#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F
#endif //GL_SAMPLE_ALPHA_TO_ONE_SGIS
#ifndef GL_SAMPLE_MASK_SGIS
#define GL_SAMPLE_MASK_SGIS 0x80A0
#endif //GL_SAMPLE_MASK_SGIS
#ifndef GL_1PASS_SGIS
#define GL_1PASS_SGIS 0x80A1
#endif //GL_1PASS_SGIS
#ifndef GL_2PASS_0_SGIS
#define GL_2PASS_0_SGIS 0x80A2
#endif //GL_2PASS_0_SGIS
#ifndef GL_2PASS_1_SGIS
#define GL_2PASS_1_SGIS 0x80A3
#endif //GL_2PASS_1_SGIS
#ifndef GL_4PASS_0_SGIS
#define GL_4PASS_0_SGIS 0x80A4
#endif //GL_4PASS_0_SGIS
#ifndef GL_4PASS_1_SGIS
#define GL_4PASS_1_SGIS 0x80A5
#endif //GL_4PASS_1_SGIS
#ifndef GL_4PASS_2_SGIS
#define GL_4PASS_2_SGIS 0x80A6
#endif //GL_4PASS_2_SGIS
#ifndef GL_4PASS_3_SGIS
#define GL_4PASS_3_SGIS 0x80A7
#endif //GL_4PASS_3_SGIS
#ifndef GL_SAMPLE_BUFFERS_SGIS
#define GL_SAMPLE_BUFFERS_SGIS 0x80A8
#endif //GL_SAMPLE_BUFFERS_SGIS
#ifndef GL_SAMPLES_SGIS
#define GL_SAMPLES_SGIS 0x80A9
#endif //GL_SAMPLES_SGIS
#ifndef GL_SAMPLE_MASK_VALUE_SGIS
#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA
#endif //GL_SAMPLE_MASK_VALUE_SGIS
#ifndef GL_SAMPLE_MASK_INVERT_SGIS
#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB
#endif //GL_SAMPLE_MASK_INVERT_SGIS
#ifndef GL_SAMPLE_PATTERN_SGIS
#define GL_SAMPLE_PATTERN_SGIS 0x80AC
#endif //GL_SAMPLE_PATTERN_SGIS
extern "C" {
}
namespace gl{

typedef void (*PFNGLSAMPLEMASKSGISPROC_HPP)(GLclampf,GLboolean);
static inline void SampleMaskSGIS(GLclampf value1,GLboolean invert1)
{
	static PFNGLSAMPLEMASKSGISPROC_HPP fn=reinterpret_cast<PFNGLSAMPLEMASKSGISPROC_HPP>(_impl::_get_proc_address("glSampleMaskSGIS","GL_SGIS_multisample"));
	 fn(value1,invert1);
}
typedef void (*PFNGLSAMPLEPATTERNSGISPROC_HPP)(GLenum);
static inline void SamplePatternSGIS(GLenum pattern1)
{
	static PFNGLSAMPLEPATTERNSGISPROC_HPP fn=reinterpret_cast<PFNGLSAMPLEPATTERNSGISPROC_HPP>(_impl::_get_proc_address("glSamplePatternSGIS","GL_SGIS_multisample"));
	 fn(pattern1);
}}
#endif

#ifndef GL_SGIS_pixel_texture
#define GL_SGIS_pixel_texture
#ifndef GL_PIXEL_TEXTURE_SGIS
#define GL_PIXEL_TEXTURE_SGIS 0x8353
#endif //GL_PIXEL_TEXTURE_SGIS
#ifndef GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS
#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354
#endif //GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS
#ifndef GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS
#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355
#endif //GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS
#ifndef GL_PIXEL_GROUP_COLOR_SGIS
#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356
#endif //GL_PIXEL_GROUP_COLOR_SGIS
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC_HPP)(GLenum,GLfloat *);
static inline void GetPixelTexGenParameterfvSGIS(GLenum pname1,GLfloat * params1)
{
	static PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC_HPP fn=reinterpret_cast<PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC_HPP>(_impl::_get_proc_address("glGetPixelTexGenParameterfvSGIS","GL_SGIS_pixel_texture"));
	 fn(pname1,params1);
}
typedef void (*PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC_HPP)(GLenum,GLint *);
static inline void GetPixelTexGenParameterivSGIS(GLenum pname1,GLint * params1)
{
	static PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC_HPP fn=reinterpret_cast<PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC_HPP>(_impl::_get_proc_address("glGetPixelTexGenParameterivSGIS","GL_SGIS_pixel_texture"));
	 fn(pname1,params1);
}
typedef void (*PFNGLPIXELTEXGENPARAMETERFSGISPROC_HPP)(GLenum,GLfloat);
static inline void PixelTexGenParameterfSGIS(GLenum pname1,GLfloat param1)
{
	static PFNGLPIXELTEXGENPARAMETERFSGISPROC_HPP fn=reinterpret_cast<PFNGLPIXELTEXGENPARAMETERFSGISPROC_HPP>(_impl::_get_proc_address("glPixelTexGenParameterfSGIS","GL_SGIS_pixel_texture"));
	 fn(pname1,param1);
}
typedef void (*PFNGLPIXELTEXGENPARAMETERFVSGISPROC_HPP)(GLenum,const GLfloat *);
static inline void PixelTexGenParameterfvSGIS(GLenum pname1,const GLfloat * params1)
{
	static PFNGLPIXELTEXGENPARAMETERFVSGISPROC_HPP fn=reinterpret_cast<PFNGLPIXELTEXGENPARAMETERFVSGISPROC_HPP>(_impl::_get_proc_address("glPixelTexGenParameterfvSGIS","GL_SGIS_pixel_texture"));
	 fn(pname1,params1);
}
typedef void (*PFNGLPIXELTEXGENPARAMETERISGISPROC_HPP)(GLenum,GLint);
static inline void PixelTexGenParameteriSGIS(GLenum pname1,GLint param1)
{
	static PFNGLPIXELTEXGENPARAMETERISGISPROC_HPP fn=reinterpret_cast<PFNGLPIXELTEXGENPARAMETERISGISPROC_HPP>(_impl::_get_proc_address("glPixelTexGenParameteriSGIS","GL_SGIS_pixel_texture"));
	 fn(pname1,param1);
}
typedef void (*PFNGLPIXELTEXGENPARAMETERIVSGISPROC_HPP)(GLenum,const GLint *);
static inline void PixelTexGenParameterivSGIS(GLenum pname1,const GLint * params1)
{
	static PFNGLPIXELTEXGENPARAMETERIVSGISPROC_HPP fn=reinterpret_cast<PFNGLPIXELTEXGENPARAMETERIVSGISPROC_HPP>(_impl::_get_proc_address("glPixelTexGenParameterivSGIS","GL_SGIS_pixel_texture"));
	 fn(pname1,params1);
}}
#endif

#ifndef GL_SGIS_point_line_texgen
#define GL_SGIS_point_line_texgen
#ifndef GL_EYE_DISTANCE_TO_POINT_SGIS
#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0
#endif //GL_EYE_DISTANCE_TO_POINT_SGIS
#ifndef GL_OBJECT_DISTANCE_TO_POINT_SGIS
#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1
#endif //GL_OBJECT_DISTANCE_TO_POINT_SGIS
#ifndef GL_EYE_DISTANCE_TO_LINE_SGIS
#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2
#endif //GL_EYE_DISTANCE_TO_LINE_SGIS
#ifndef GL_OBJECT_DISTANCE_TO_LINE_SGIS
#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3
#endif //GL_OBJECT_DISTANCE_TO_LINE_SGIS
#ifndef GL_EYE_POINT_SGIS
#define GL_EYE_POINT_SGIS 0x81F4
#endif //GL_EYE_POINT_SGIS
#ifndef GL_OBJECT_POINT_SGIS
#define GL_OBJECT_POINT_SGIS 0x81F5
#endif //GL_OBJECT_POINT_SGIS
#ifndef GL_EYE_LINE_SGIS
#define GL_EYE_LINE_SGIS 0x81F6
#endif //GL_EYE_LINE_SGIS
#ifndef GL_OBJECT_LINE_SGIS
#define GL_OBJECT_LINE_SGIS 0x81F7
#endif //GL_OBJECT_LINE_SGIS
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIS_point_parameters
#define GL_SGIS_point_parameters
#ifndef GL_POINT_SIZE_MIN_SGIS
#define GL_POINT_SIZE_MIN_SGIS 0x8126
#endif //GL_POINT_SIZE_MIN_SGIS
#ifndef GL_POINT_SIZE_MAX_SGIS
#define GL_POINT_SIZE_MAX_SGIS 0x8127
#endif //GL_POINT_SIZE_MAX_SGIS
#ifndef GL_POINT_FADE_THRESHOLD_SIZE_SGIS
#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128
#endif //GL_POINT_FADE_THRESHOLD_SIZE_SGIS
#ifndef GL_DISTANCE_ATTENUATION_SGIS
#define GL_DISTANCE_ATTENUATION_SGIS 0x8129
#endif //GL_DISTANCE_ATTENUATION_SGIS
extern "C" {
}
namespace gl{

typedef void (*PFNGLPOINTPARAMETERFSGISPROC_HPP)(GLenum,GLfloat);
static inline void PointParameterfSGIS(GLenum pname1,GLfloat param1)
{
	static PFNGLPOINTPARAMETERFSGISPROC_HPP fn=reinterpret_cast<PFNGLPOINTPARAMETERFSGISPROC_HPP>(_impl::_get_proc_address("glPointParameterfSGIS","GL_SGIS_point_parameters"));
	 fn(pname1,param1);
}
typedef void (*PFNGLPOINTPARAMETERFVSGISPROC_HPP)(GLenum,const GLfloat *);
static inline void PointParameterfvSGIS(GLenum pname1,const GLfloat * params1)
{
	static PFNGLPOINTPARAMETERFVSGISPROC_HPP fn=reinterpret_cast<PFNGLPOINTPARAMETERFVSGISPROC_HPP>(_impl::_get_proc_address("glPointParameterfvSGIS","GL_SGIS_point_parameters"));
	 fn(pname1,params1);
}}
#endif

#ifndef GL_SGIS_sharpen_texture
#define GL_SGIS_sharpen_texture
#ifndef GL_LINEAR_SHARPEN_SGIS
#define GL_LINEAR_SHARPEN_SGIS 0x80AD
#endif //GL_LINEAR_SHARPEN_SGIS
#ifndef GL_LINEAR_SHARPEN_ALPHA_SGIS
#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE
#endif //GL_LINEAR_SHARPEN_ALPHA_SGIS
#ifndef GL_LINEAR_SHARPEN_COLOR_SGIS
#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF
#endif //GL_LINEAR_SHARPEN_COLOR_SGIS
#ifndef GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS
#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0
#endif //GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETSHARPENTEXFUNCSGISPROC_HPP)(GLenum,GLfloat *);
static inline void GetSharpenTexFuncSGIS(GLenum target1,GLfloat * points1)
{
	static PFNGLGETSHARPENTEXFUNCSGISPROC_HPP fn=reinterpret_cast<PFNGLGETSHARPENTEXFUNCSGISPROC_HPP>(_impl::_get_proc_address("glGetSharpenTexFuncSGIS","GL_SGIS_sharpen_texture"));
	 fn(target1,points1);
}
typedef void (*PFNGLSHARPENTEXFUNCSGISPROC_HPP)(GLenum,GLsizei,const GLfloat *);
static inline void SharpenTexFuncSGIS(GLenum target1,GLsizei n1,const GLfloat * points1)
{
	static PFNGLSHARPENTEXFUNCSGISPROC_HPP fn=reinterpret_cast<PFNGLSHARPENTEXFUNCSGISPROC_HPP>(_impl::_get_proc_address("glSharpenTexFuncSGIS","GL_SGIS_sharpen_texture"));
	 fn(target1,n1,points1);
}}
#endif

#ifndef GL_SGIS_texture4D
#define GL_SGIS_texture4D
#ifndef GL_PACK_SKIP_VOLUMES_SGIS
#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130
#endif //GL_PACK_SKIP_VOLUMES_SGIS
#ifndef GL_PACK_IMAGE_DEPTH_SGIS
#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131
#endif //GL_PACK_IMAGE_DEPTH_SGIS
#ifndef GL_UNPACK_SKIP_VOLUMES_SGIS
#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132
#endif //GL_UNPACK_SKIP_VOLUMES_SGIS
#ifndef GL_UNPACK_IMAGE_DEPTH_SGIS
#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133
#endif //GL_UNPACK_IMAGE_DEPTH_SGIS
#ifndef GL_TEXTURE_4D_SGIS
#define GL_TEXTURE_4D_SGIS 0x8134
#endif //GL_TEXTURE_4D_SGIS
#ifndef GL_PROXY_TEXTURE_4D_SGIS
#define GL_PROXY_TEXTURE_4D_SGIS 0x8135
#endif //GL_PROXY_TEXTURE_4D_SGIS
#ifndef GL_TEXTURE_4DSIZE_SGIS
#define GL_TEXTURE_4DSIZE_SGIS 0x8136
#endif //GL_TEXTURE_4DSIZE_SGIS
#ifndef GL_TEXTURE_WRAP_Q_SGIS
#define GL_TEXTURE_WRAP_Q_SGIS 0x8137
#endif //GL_TEXTURE_WRAP_Q_SGIS
#ifndef GL_MAX_4D_TEXTURE_SIZE_SGIS
#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138
#endif //GL_MAX_4D_TEXTURE_SIZE_SGIS
#ifndef GL_TEXTURE_4D_BINDING_SGIS
#define GL_TEXTURE_4D_BINDING_SGIS 0x814F
#endif //GL_TEXTURE_4D_BINDING_SGIS
extern "C" {
}
namespace gl{

typedef void (*PFNGLTEXIMAGE4DSGISPROC_HPP)(GLenum,GLint,GLenum,GLsizei,GLsizei,GLsizei,GLsizei,GLint,GLenum,GLenum,const void *);
static inline void TexImage4DSGIS(GLenum target1,GLint level1,GLenum internalformat1,GLsizei width1,GLsizei height1,GLsizei depth1,GLsizei size4d1,GLint border1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLTEXIMAGE4DSGISPROC_HPP fn=reinterpret_cast<PFNGLTEXIMAGE4DSGISPROC_HPP>(_impl::_get_proc_address("glTexImage4DSGIS","GL_SGIS_texture4D"));
	 fn(target1,level1,internalformat1,width1,height1,depth1,size4d1,border1,format1,type1,pixels1);
}
typedef void (*PFNGLTEXSUBIMAGE4DSGISPROC_HPP)(GLenum,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLsizei,GLenum,GLenum,const void *);
static inline void TexSubImage4DSGIS(GLenum target1,GLint level1,GLint xoffset1,GLint yoffset1,GLint zoffset1,GLint woffset1,GLsizei width1,GLsizei height1,GLsizei depth1,GLsizei size4d1,GLenum format1,GLenum type1,const void * pixels1)
{
	static PFNGLTEXSUBIMAGE4DSGISPROC_HPP fn=reinterpret_cast<PFNGLTEXSUBIMAGE4DSGISPROC_HPP>(_impl::_get_proc_address("glTexSubImage4DSGIS","GL_SGIS_texture4D"));
	 fn(target1,level1,xoffset1,yoffset1,zoffset1,woffset1,width1,height1,depth1,size4d1,format1,type1,pixels1);
}}
#endif

#ifndef GL_SGIS_texture_border_clamp
#define GL_SGIS_texture_border_clamp
#ifndef GL_CLAMP_TO_BORDER_SGIS
#define GL_CLAMP_TO_BORDER_SGIS 0x812D
#endif //GL_CLAMP_TO_BORDER_SGIS
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIS_texture_color_mask
#define GL_SGIS_texture_color_mask
#ifndef GL_TEXTURE_COLOR_WRITEMASK_SGIS
#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF
#endif //GL_TEXTURE_COLOR_WRITEMASK_SGIS
extern "C" {
}
namespace gl{

typedef void (*PFNGLTEXTURECOLORMASKSGISPROC_HPP)(GLboolean,GLboolean,GLboolean,GLboolean);
static inline void TextureColorMaskSGIS(GLboolean red1,GLboolean green1,GLboolean blue1,GLboolean alpha1)
{
	static PFNGLTEXTURECOLORMASKSGISPROC_HPP fn=reinterpret_cast<PFNGLTEXTURECOLORMASKSGISPROC_HPP>(_impl::_get_proc_address("glTextureColorMaskSGIS","GL_SGIS_texture_color_mask"));
	 fn(red1,green1,blue1,alpha1);
}}
#endif

#ifndef GL_SGIS_texture_edge_clamp
#define GL_SGIS_texture_edge_clamp
#ifndef GL_CLAMP_TO_EDGE_SGIS
#define GL_CLAMP_TO_EDGE_SGIS 0x812F
#endif //GL_CLAMP_TO_EDGE_SGIS
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIS_texture_filter4
#define GL_SGIS_texture_filter4
#ifndef GL_FILTER4_SGIS
#define GL_FILTER4_SGIS 0x8146
#endif //GL_FILTER4_SGIS
#ifndef GL_TEXTURE_FILTER4_SIZE_SGIS
#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147
#endif //GL_TEXTURE_FILTER4_SIZE_SGIS
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETTEXFILTERFUNCSGISPROC_HPP)(GLenum,GLenum,GLfloat *);
static inline void GetTexFilterFuncSGIS(GLenum target1,GLenum filter1,GLfloat * weights1)
{
	static PFNGLGETTEXFILTERFUNCSGISPROC_HPP fn=reinterpret_cast<PFNGLGETTEXFILTERFUNCSGISPROC_HPP>(_impl::_get_proc_address("glGetTexFilterFuncSGIS","GL_SGIS_texture_filter4"));
	 fn(target1,filter1,weights1);
}
typedef void (*PFNGLTEXFILTERFUNCSGISPROC_HPP)(GLenum,GLenum,GLsizei,const GLfloat *);
static inline void TexFilterFuncSGIS(GLenum target1,GLenum filter1,GLsizei n1,const GLfloat * weights1)
{
	static PFNGLTEXFILTERFUNCSGISPROC_HPP fn=reinterpret_cast<PFNGLTEXFILTERFUNCSGISPROC_HPP>(_impl::_get_proc_address("glTexFilterFuncSGIS","GL_SGIS_texture_filter4"));
	 fn(target1,filter1,n1,weights1);
}}
#endif

#ifndef GL_SGIS_texture_lod
#define GL_SGIS_texture_lod
#ifndef GL_TEXTURE_MIN_LOD_SGIS
#define GL_TEXTURE_MIN_LOD_SGIS 0x813A
#endif //GL_TEXTURE_MIN_LOD_SGIS
#ifndef GL_TEXTURE_MAX_LOD_SGIS
#define GL_TEXTURE_MAX_LOD_SGIS 0x813B
#endif //GL_TEXTURE_MAX_LOD_SGIS
#ifndef GL_TEXTURE_BASE_LEVEL_SGIS
#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C
#endif //GL_TEXTURE_BASE_LEVEL_SGIS
#ifndef GL_TEXTURE_MAX_LEVEL_SGIS
#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D
#endif //GL_TEXTURE_MAX_LEVEL_SGIS
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIS_texture_select
#define GL_SGIS_texture_select
#ifndef GL_DUAL_ALPHA4_SGIS
#define GL_DUAL_ALPHA4_SGIS 0x8110
#endif //GL_DUAL_ALPHA4_SGIS
#ifndef GL_DUAL_ALPHA8_SGIS
#define GL_DUAL_ALPHA8_SGIS 0x8111
#endif //GL_DUAL_ALPHA8_SGIS
#ifndef GL_DUAL_ALPHA12_SGIS
#define GL_DUAL_ALPHA12_SGIS 0x8112
#endif //GL_DUAL_ALPHA12_SGIS
#ifndef GL_DUAL_ALPHA16_SGIS
#define GL_DUAL_ALPHA16_SGIS 0x8113
#endif //GL_DUAL_ALPHA16_SGIS
#ifndef GL_DUAL_LUMINANCE4_SGIS
#define GL_DUAL_LUMINANCE4_SGIS 0x8114
#endif //GL_DUAL_LUMINANCE4_SGIS
#ifndef GL_DUAL_LUMINANCE8_SGIS
#define GL_DUAL_LUMINANCE8_SGIS 0x8115
#endif //GL_DUAL_LUMINANCE8_SGIS
#ifndef GL_DUAL_LUMINANCE12_SGIS
#define GL_DUAL_LUMINANCE12_SGIS 0x8116
#endif //GL_DUAL_LUMINANCE12_SGIS
#ifndef GL_DUAL_LUMINANCE16_SGIS
#define GL_DUAL_LUMINANCE16_SGIS 0x8117
#endif //GL_DUAL_LUMINANCE16_SGIS
#ifndef GL_DUAL_INTENSITY4_SGIS
#define GL_DUAL_INTENSITY4_SGIS 0x8118
#endif //GL_DUAL_INTENSITY4_SGIS
#ifndef GL_DUAL_INTENSITY8_SGIS
#define GL_DUAL_INTENSITY8_SGIS 0x8119
#endif //GL_DUAL_INTENSITY8_SGIS
#ifndef GL_DUAL_INTENSITY12_SGIS
#define GL_DUAL_INTENSITY12_SGIS 0x811A
#endif //GL_DUAL_INTENSITY12_SGIS
#ifndef GL_DUAL_INTENSITY16_SGIS
#define GL_DUAL_INTENSITY16_SGIS 0x811B
#endif //GL_DUAL_INTENSITY16_SGIS
#ifndef GL_DUAL_LUMINANCE_ALPHA4_SGIS
#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C
#endif //GL_DUAL_LUMINANCE_ALPHA4_SGIS
#ifndef GL_DUAL_LUMINANCE_ALPHA8_SGIS
#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D
#endif //GL_DUAL_LUMINANCE_ALPHA8_SGIS
#ifndef GL_QUAD_ALPHA4_SGIS
#define GL_QUAD_ALPHA4_SGIS 0x811E
#endif //GL_QUAD_ALPHA4_SGIS
#ifndef GL_QUAD_ALPHA8_SGIS
#define GL_QUAD_ALPHA8_SGIS 0x811F
#endif //GL_QUAD_ALPHA8_SGIS
#ifndef GL_QUAD_LUMINANCE4_SGIS
#define GL_QUAD_LUMINANCE4_SGIS 0x8120
#endif //GL_QUAD_LUMINANCE4_SGIS
#ifndef GL_QUAD_LUMINANCE8_SGIS
#define GL_QUAD_LUMINANCE8_SGIS 0x8121
#endif //GL_QUAD_LUMINANCE8_SGIS
#ifndef GL_QUAD_INTENSITY4_SGIS
#define GL_QUAD_INTENSITY4_SGIS 0x8122
#endif //GL_QUAD_INTENSITY4_SGIS
#ifndef GL_QUAD_INTENSITY8_SGIS
#define GL_QUAD_INTENSITY8_SGIS 0x8123
#endif //GL_QUAD_INTENSITY8_SGIS
#ifndef GL_DUAL_TEXTURE_SELECT_SGIS
#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124
#endif //GL_DUAL_TEXTURE_SELECT_SGIS
#ifndef GL_QUAD_TEXTURE_SELECT_SGIS
#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125
#endif //GL_QUAD_TEXTURE_SELECT_SGIS
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_async
#define GL_SGIX_async
#ifndef GL_ASYNC_MARKER_SGIX
#define GL_ASYNC_MARKER_SGIX 0x8329
#endif //GL_ASYNC_MARKER_SGIX
extern "C" {
}
namespace gl{

typedef void (*PFNGLASYNCMARKERSGIXPROC_HPP)(GLuint);
static inline void AsyncMarkerSGIX(GLuint marker1)
{
	static PFNGLASYNCMARKERSGIXPROC_HPP fn=reinterpret_cast<PFNGLASYNCMARKERSGIXPROC_HPP>(_impl::_get_proc_address("glAsyncMarkerSGIX","GL_SGIX_async"));
	 fn(marker1);
}
typedef void (*PFNGLDELETEASYNCMARKERSSGIXPROC_HPP)(GLuint,GLsizei);
static inline void DeleteAsyncMarkersSGIX(GLuint marker1,GLsizei range1)
{
	static PFNGLDELETEASYNCMARKERSSGIXPROC_HPP fn=reinterpret_cast<PFNGLDELETEASYNCMARKERSSGIXPROC_HPP>(_impl::_get_proc_address("glDeleteAsyncMarkersSGIX","GL_SGIX_async"));
	 fn(marker1,range1);
}
typedef GLint (*PFNGLFINISHASYNCSGIXPROC_HPP)(GLuint *);
static inline GLint FinishAsyncSGIX(GLuint * markerp1)
{
	static PFNGLFINISHASYNCSGIXPROC_HPP fn=reinterpret_cast<PFNGLFINISHASYNCSGIXPROC_HPP>(_impl::_get_proc_address("glFinishAsyncSGIX","GL_SGIX_async"));
	return fn(markerp1);
}
typedef GLuint (*PFNGLGENASYNCMARKERSSGIXPROC_HPP)(GLsizei);
static inline GLuint GenAsyncMarkersSGIX(GLsizei range1)
{
	static PFNGLGENASYNCMARKERSSGIXPROC_HPP fn=reinterpret_cast<PFNGLGENASYNCMARKERSSGIXPROC_HPP>(_impl::_get_proc_address("glGenAsyncMarkersSGIX","GL_SGIX_async"));
	return fn(range1);
}
typedef GLboolean (*PFNGLISASYNCMARKERSGIXPROC_HPP)(GLuint);
static inline GLboolean IsAsyncMarkerSGIX(GLuint marker1)
{
	static PFNGLISASYNCMARKERSGIXPROC_HPP fn=reinterpret_cast<PFNGLISASYNCMARKERSGIXPROC_HPP>(_impl::_get_proc_address("glIsAsyncMarkerSGIX","GL_SGIX_async"));
	return fn(marker1);
}
typedef GLint (*PFNGLPOLLASYNCSGIXPROC_HPP)(GLuint *);
static inline GLint PollAsyncSGIX(GLuint * markerp1)
{
	static PFNGLPOLLASYNCSGIXPROC_HPP fn=reinterpret_cast<PFNGLPOLLASYNCSGIXPROC_HPP>(_impl::_get_proc_address("glPollAsyncSGIX","GL_SGIX_async"));
	return fn(markerp1);
}}
#endif

#ifndef GL_SGIX_async_histogram
#define GL_SGIX_async_histogram
#ifndef GL_ASYNC_HISTOGRAM_SGIX
#define GL_ASYNC_HISTOGRAM_SGIX 0x832C
#endif //GL_ASYNC_HISTOGRAM_SGIX
#ifndef GL_MAX_ASYNC_HISTOGRAM_SGIX
#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D
#endif //GL_MAX_ASYNC_HISTOGRAM_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_async_pixel
#define GL_SGIX_async_pixel
#ifndef GL_ASYNC_TEX_IMAGE_SGIX
#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C
#endif //GL_ASYNC_TEX_IMAGE_SGIX
#ifndef GL_ASYNC_DRAW_PIXELS_SGIX
#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D
#endif //GL_ASYNC_DRAW_PIXELS_SGIX
#ifndef GL_ASYNC_READ_PIXELS_SGIX
#define GL_ASYNC_READ_PIXELS_SGIX 0x835E
#endif //GL_ASYNC_READ_PIXELS_SGIX
#ifndef GL_MAX_ASYNC_TEX_IMAGE_SGIX
#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F
#endif //GL_MAX_ASYNC_TEX_IMAGE_SGIX
#ifndef GL_MAX_ASYNC_DRAW_PIXELS_SGIX
#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360
#endif //GL_MAX_ASYNC_DRAW_PIXELS_SGIX
#ifndef GL_MAX_ASYNC_READ_PIXELS_SGIX
#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361
#endif //GL_MAX_ASYNC_READ_PIXELS_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_blend_alpha_minmax
#define GL_SGIX_blend_alpha_minmax
#ifndef GL_ALPHA_MIN_SGIX
#define GL_ALPHA_MIN_SGIX 0x8320
#endif //GL_ALPHA_MIN_SGIX
#ifndef GL_ALPHA_MAX_SGIX
#define GL_ALPHA_MAX_SGIX 0x8321
#endif //GL_ALPHA_MAX_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_calligraphic_fragment
#define GL_SGIX_calligraphic_fragment
#ifndef GL_CALLIGRAPHIC_FRAGMENT_SGIX
#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183
#endif //GL_CALLIGRAPHIC_FRAGMENT_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_clipmap
#define GL_SGIX_clipmap
#ifndef GL_LINEAR_CLIPMAP_LINEAR_SGIX
#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170
#endif //GL_LINEAR_CLIPMAP_LINEAR_SGIX
#ifndef GL_TEXTURE_CLIPMAP_CENTER_SGIX
#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171
#endif //GL_TEXTURE_CLIPMAP_CENTER_SGIX
#ifndef GL_TEXTURE_CLIPMAP_FRAME_SGIX
#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172
#endif //GL_TEXTURE_CLIPMAP_FRAME_SGIX
#ifndef GL_TEXTURE_CLIPMAP_OFFSET_SGIX
#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173
#endif //GL_TEXTURE_CLIPMAP_OFFSET_SGIX
#ifndef GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX
#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174
#endif //GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX
#ifndef GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX
#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175
#endif //GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX
#ifndef GL_TEXTURE_CLIPMAP_DEPTH_SGIX
#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176
#endif //GL_TEXTURE_CLIPMAP_DEPTH_SGIX
#ifndef GL_MAX_CLIPMAP_DEPTH_SGIX
#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177
#endif //GL_MAX_CLIPMAP_DEPTH_SGIX
#ifndef GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX
#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178
#endif //GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX
#ifndef GL_NEAREST_CLIPMAP_NEAREST_SGIX
#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D
#endif //GL_NEAREST_CLIPMAP_NEAREST_SGIX
#ifndef GL_NEAREST_CLIPMAP_LINEAR_SGIX
#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E
#endif //GL_NEAREST_CLIPMAP_LINEAR_SGIX
#ifndef GL_LINEAR_CLIPMAP_NEAREST_SGIX
#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F
#endif //GL_LINEAR_CLIPMAP_NEAREST_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_convolution_accuracy
#define GL_SGIX_convolution_accuracy
#ifndef GL_CONVOLUTION_HINT_SGIX
#define GL_CONVOLUTION_HINT_SGIX 0x8316
#endif //GL_CONVOLUTION_HINT_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_depth_pass_instrument
#define GL_SGIX_depth_pass_instrument
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_depth_texture
#define GL_SGIX_depth_texture
#ifndef GL_DEPTH_COMPONENT16_SGIX
#define GL_DEPTH_COMPONENT16_SGIX 0x81A5
#endif //GL_DEPTH_COMPONENT16_SGIX
#ifndef GL_DEPTH_COMPONENT24_SGIX
#define GL_DEPTH_COMPONENT24_SGIX 0x81A6
#endif //GL_DEPTH_COMPONENT24_SGIX
#ifndef GL_DEPTH_COMPONENT32_SGIX
#define GL_DEPTH_COMPONENT32_SGIX 0x81A7
#endif //GL_DEPTH_COMPONENT32_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_flush_raster
#define GL_SGIX_flush_raster
extern "C" {
}
namespace gl{

typedef void (*PFNGLFLUSHRASTERSGIXPROC_HPP)();
static inline void FlushRasterSGIX()
{
	static PFNGLFLUSHRASTERSGIXPROC_HPP fn=reinterpret_cast<PFNGLFLUSHRASTERSGIXPROC_HPP>(_impl::_get_proc_address("glFlushRasterSGIX","GL_SGIX_flush_raster"));
	 fn();
}}
#endif

#ifndef GL_SGIX_fog_offset
#define GL_SGIX_fog_offset
#ifndef GL_FOG_OFFSET_SGIX
#define GL_FOG_OFFSET_SGIX 0x8198
#endif //GL_FOG_OFFSET_SGIX
#ifndef GL_FOG_OFFSET_VALUE_SGIX
#define GL_FOG_OFFSET_VALUE_SGIX 0x8199
#endif //GL_FOG_OFFSET_VALUE_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_fragment_lighting
#define GL_SGIX_fragment_lighting
#ifndef GL_FRAGMENT_LIGHTING_SGIX
#define GL_FRAGMENT_LIGHTING_SGIX 0x8400
#endif //GL_FRAGMENT_LIGHTING_SGIX
#ifndef GL_FRAGMENT_COLOR_MATERIAL_SGIX
#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401
#endif //GL_FRAGMENT_COLOR_MATERIAL_SGIX
#ifndef GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX
#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402
#endif //GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX
#ifndef GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX
#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403
#endif //GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX
#ifndef GL_MAX_FRAGMENT_LIGHTS_SGIX
#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404
#endif //GL_MAX_FRAGMENT_LIGHTS_SGIX
#ifndef GL_MAX_ACTIVE_LIGHTS_SGIX
#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405
#endif //GL_MAX_ACTIVE_LIGHTS_SGIX
#ifndef GL_CURRENT_RASTER_NORMAL_SGIX
#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406
#endif //GL_CURRENT_RASTER_NORMAL_SGIX
#ifndef GL_LIGHT_ENV_MODE_SGIX
#define GL_LIGHT_ENV_MODE_SGIX 0x8407
#endif //GL_LIGHT_ENV_MODE_SGIX
#ifndef GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX
#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408
#endif //GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX
#ifndef GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX
#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409
#endif //GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX
#ifndef GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX
#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A
#endif //GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX
#ifndef GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX
#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B
#endif //GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX
#ifndef GL_FRAGMENT_LIGHT0_SGIX
#define GL_FRAGMENT_LIGHT0_SGIX 0x840C
#endif //GL_FRAGMENT_LIGHT0_SGIX
#ifndef GL_FRAGMENT_LIGHT1_SGIX
#define GL_FRAGMENT_LIGHT1_SGIX 0x840D
#endif //GL_FRAGMENT_LIGHT1_SGIX
#ifndef GL_FRAGMENT_LIGHT2_SGIX
#define GL_FRAGMENT_LIGHT2_SGIX 0x840E
#endif //GL_FRAGMENT_LIGHT2_SGIX
#ifndef GL_FRAGMENT_LIGHT3_SGIX
#define GL_FRAGMENT_LIGHT3_SGIX 0x840F
#endif //GL_FRAGMENT_LIGHT3_SGIX
#ifndef GL_FRAGMENT_LIGHT4_SGIX
#define GL_FRAGMENT_LIGHT4_SGIX 0x8410
#endif //GL_FRAGMENT_LIGHT4_SGIX
#ifndef GL_FRAGMENT_LIGHT5_SGIX
#define GL_FRAGMENT_LIGHT5_SGIX 0x8411
#endif //GL_FRAGMENT_LIGHT5_SGIX
#ifndef GL_FRAGMENT_LIGHT6_SGIX
#define GL_FRAGMENT_LIGHT6_SGIX 0x8412
#endif //GL_FRAGMENT_LIGHT6_SGIX
#ifndef GL_FRAGMENT_LIGHT7_SGIX
#define GL_FRAGMENT_LIGHT7_SGIX 0x8413
#endif //GL_FRAGMENT_LIGHT7_SGIX
extern "C" {
}
namespace gl{

typedef void (*PFNGLFRAGMENTCOLORMATERIALSGIXPROC_HPP)(GLenum,GLenum);
static inline void FragmentColorMaterialSGIX(GLenum face1,GLenum mode1)
{
	static PFNGLFRAGMENTCOLORMATERIALSGIXPROC_HPP fn=reinterpret_cast<PFNGLFRAGMENTCOLORMATERIALSGIXPROC_HPP>(_impl::_get_proc_address("glFragmentColorMaterialSGIX","GL_SGIX_fragment_lighting"));
	 fn(face1,mode1);
}
typedef void (*PFNGLFRAGMENTLIGHTMODELFSGIXPROC_HPP)(GLenum,GLfloat);
static inline void FragmentLightModelfSGIX(GLenum pname1,GLfloat param1)
{
	static PFNGLFRAGMENTLIGHTMODELFSGIXPROC_HPP fn=reinterpret_cast<PFNGLFRAGMENTLIGHTMODELFSGIXPROC_HPP>(_impl::_get_proc_address("glFragmentLightModelfSGIX","GL_SGIX_fragment_lighting"));
	 fn(pname1,param1);
}
typedef void (*PFNGLFRAGMENTLIGHTMODELFVSGIXPROC_HPP)(GLenum,const GLfloat *);
static inline void FragmentLightModelfvSGIX(GLenum pname1,const GLfloat * params1)
{
	static PFNGLFRAGMENTLIGHTMODELFVSGIXPROC_HPP fn=reinterpret_cast<PFNGLFRAGMENTLIGHTMODELFVSGIXPROC_HPP>(_impl::_get_proc_address("glFragmentLightModelfvSGIX","GL_SGIX_fragment_lighting"));
	 fn(pname1,params1);
}
typedef void (*PFNGLFRAGMENTLIGHTMODELISGIXPROC_HPP)(GLenum,GLint);
static inline void FragmentLightModeliSGIX(GLenum pname1,GLint param1)
{
	static PFNGLFRAGMENTLIGHTMODELISGIXPROC_HPP fn=reinterpret_cast<PFNGLFRAGMENTLIGHTMODELISGIXPROC_HPP>(_impl::_get_proc_address("glFragmentLightModeliSGIX","GL_SGIX_fragment_lighting"));
	 fn(pname1,param1);
}
typedef void (*PFNGLFRAGMENTLIGHTMODELIVSGIXPROC_HPP)(GLenum,const GLint *);
static inline void FragmentLightModelivSGIX(GLenum pname1,const GLint * params1)
{
	static PFNGLFRAGMENTLIGHTMODELIVSGIXPROC_HPP fn=reinterpret_cast<PFNGLFRAGMENTLIGHTMODELIVSGIXPROC_HPP>(_impl::_get_proc_address("glFragmentLightModelivSGIX","GL_SGIX_fragment_lighting"));
	 fn(pname1,params1);
}
typedef void (*PFNGLFRAGMENTLIGHTFSGIXPROC_HPP)(GLenum,GLenum,GLfloat);
static inline void FragmentLightfSGIX(GLenum light1,GLenum pname1,GLfloat param1)
{
	static PFNGLFRAGMENTLIGHTFSGIXPROC_HPP fn=reinterpret_cast<PFNGLFRAGMENTLIGHTFSGIXPROC_HPP>(_impl::_get_proc_address("glFragmentLightfSGIX","GL_SGIX_fragment_lighting"));
	 fn(light1,pname1,param1);
}
typedef void (*PFNGLFRAGMENTLIGHTFVSGIXPROC_HPP)(GLenum,GLenum,const GLfloat *);
static inline void FragmentLightfvSGIX(GLenum light1,GLenum pname1,const GLfloat * params1)
{
	static PFNGLFRAGMENTLIGHTFVSGIXPROC_HPP fn=reinterpret_cast<PFNGLFRAGMENTLIGHTFVSGIXPROC_HPP>(_impl::_get_proc_address("glFragmentLightfvSGIX","GL_SGIX_fragment_lighting"));
	 fn(light1,pname1,params1);
}
typedef void (*PFNGLFRAGMENTLIGHTISGIXPROC_HPP)(GLenum,GLenum,GLint);
static inline void FragmentLightiSGIX(GLenum light1,GLenum pname1,GLint param1)
{
	static PFNGLFRAGMENTLIGHTISGIXPROC_HPP fn=reinterpret_cast<PFNGLFRAGMENTLIGHTISGIXPROC_HPP>(_impl::_get_proc_address("glFragmentLightiSGIX","GL_SGIX_fragment_lighting"));
	 fn(light1,pname1,param1);
}
typedef void (*PFNGLFRAGMENTLIGHTIVSGIXPROC_HPP)(GLenum,GLenum,const GLint *);
static inline void FragmentLightivSGIX(GLenum light1,GLenum pname1,const GLint * params1)
{
	static PFNGLFRAGMENTLIGHTIVSGIXPROC_HPP fn=reinterpret_cast<PFNGLFRAGMENTLIGHTIVSGIXPROC_HPP>(_impl::_get_proc_address("glFragmentLightivSGIX","GL_SGIX_fragment_lighting"));
	 fn(light1,pname1,params1);
}
typedef void (*PFNGLFRAGMENTMATERIALFSGIXPROC_HPP)(GLenum,GLenum,GLfloat);
static inline void FragmentMaterialfSGIX(GLenum face1,GLenum pname1,GLfloat param1)
{
	static PFNGLFRAGMENTMATERIALFSGIXPROC_HPP fn=reinterpret_cast<PFNGLFRAGMENTMATERIALFSGIXPROC_HPP>(_impl::_get_proc_address("glFragmentMaterialfSGIX","GL_SGIX_fragment_lighting"));
	 fn(face1,pname1,param1);
}
typedef void (*PFNGLFRAGMENTMATERIALFVSGIXPROC_HPP)(GLenum,GLenum,const GLfloat *);
static inline void FragmentMaterialfvSGIX(GLenum face1,GLenum pname1,const GLfloat * params1)
{
	static PFNGLFRAGMENTMATERIALFVSGIXPROC_HPP fn=reinterpret_cast<PFNGLFRAGMENTMATERIALFVSGIXPROC_HPP>(_impl::_get_proc_address("glFragmentMaterialfvSGIX","GL_SGIX_fragment_lighting"));
	 fn(face1,pname1,params1);
}
typedef void (*PFNGLFRAGMENTMATERIALISGIXPROC_HPP)(GLenum,GLenum,GLint);
static inline void FragmentMaterialiSGIX(GLenum face1,GLenum pname1,GLint param1)
{
	static PFNGLFRAGMENTMATERIALISGIXPROC_HPP fn=reinterpret_cast<PFNGLFRAGMENTMATERIALISGIXPROC_HPP>(_impl::_get_proc_address("glFragmentMaterialiSGIX","GL_SGIX_fragment_lighting"));
	 fn(face1,pname1,param1);
}
typedef void (*PFNGLFRAGMENTMATERIALIVSGIXPROC_HPP)(GLenum,GLenum,const GLint *);
static inline void FragmentMaterialivSGIX(GLenum face1,GLenum pname1,const GLint * params1)
{
	static PFNGLFRAGMENTMATERIALIVSGIXPROC_HPP fn=reinterpret_cast<PFNGLFRAGMENTMATERIALIVSGIXPROC_HPP>(_impl::_get_proc_address("glFragmentMaterialivSGIX","GL_SGIX_fragment_lighting"));
	 fn(face1,pname1,params1);
}
typedef void (*PFNGLGETFRAGMENTLIGHTFVSGIXPROC_HPP)(GLenum,GLenum,GLfloat *);
static inline void GetFragmentLightfvSGIX(GLenum light1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETFRAGMENTLIGHTFVSGIXPROC_HPP fn=reinterpret_cast<PFNGLGETFRAGMENTLIGHTFVSGIXPROC_HPP>(_impl::_get_proc_address("glGetFragmentLightfvSGIX","GL_SGIX_fragment_lighting"));
	 fn(light1,pname1,params1);
}
typedef void (*PFNGLGETFRAGMENTLIGHTIVSGIXPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetFragmentLightivSGIX(GLenum light1,GLenum pname1,GLint * params1)
{
	static PFNGLGETFRAGMENTLIGHTIVSGIXPROC_HPP fn=reinterpret_cast<PFNGLGETFRAGMENTLIGHTIVSGIXPROC_HPP>(_impl::_get_proc_address("glGetFragmentLightivSGIX","GL_SGIX_fragment_lighting"));
	 fn(light1,pname1,params1);
}
typedef void (*PFNGLGETFRAGMENTMATERIALFVSGIXPROC_HPP)(GLenum,GLenum,GLfloat *);
static inline void GetFragmentMaterialfvSGIX(GLenum face1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETFRAGMENTMATERIALFVSGIXPROC_HPP fn=reinterpret_cast<PFNGLGETFRAGMENTMATERIALFVSGIXPROC_HPP>(_impl::_get_proc_address("glGetFragmentMaterialfvSGIX","GL_SGIX_fragment_lighting"));
	 fn(face1,pname1,params1);
}
typedef void (*PFNGLGETFRAGMENTMATERIALIVSGIXPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetFragmentMaterialivSGIX(GLenum face1,GLenum pname1,GLint * params1)
{
	static PFNGLGETFRAGMENTMATERIALIVSGIXPROC_HPP fn=reinterpret_cast<PFNGLGETFRAGMENTMATERIALIVSGIXPROC_HPP>(_impl::_get_proc_address("glGetFragmentMaterialivSGIX","GL_SGIX_fragment_lighting"));
	 fn(face1,pname1,params1);
}
typedef void (*PFNGLLIGHTENVISGIXPROC_HPP)(GLenum,GLint);
static inline void LightEnviSGIX(GLenum pname1,GLint param1)
{
	static PFNGLLIGHTENVISGIXPROC_HPP fn=reinterpret_cast<PFNGLLIGHTENVISGIXPROC_HPP>(_impl::_get_proc_address("glLightEnviSGIX","GL_SGIX_fragment_lighting"));
	 fn(pname1,param1);
}}
#endif

#ifndef GL_SGIX_framezoom
#define GL_SGIX_framezoom
#ifndef GL_FRAMEZOOM_SGIX
#define GL_FRAMEZOOM_SGIX 0x818B
#endif //GL_FRAMEZOOM_SGIX
#ifndef GL_FRAMEZOOM_FACTOR_SGIX
#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C
#endif //GL_FRAMEZOOM_FACTOR_SGIX
#ifndef GL_MAX_FRAMEZOOM_FACTOR_SGIX
#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D
#endif //GL_MAX_FRAMEZOOM_FACTOR_SGIX
extern "C" {
}
namespace gl{

typedef void (*PFNGLFRAMEZOOMSGIXPROC_HPP)(GLint);
static inline void FrameZoomSGIX(GLint factor1)
{
	static PFNGLFRAMEZOOMSGIXPROC_HPP fn=reinterpret_cast<PFNGLFRAMEZOOMSGIXPROC_HPP>(_impl::_get_proc_address("glFrameZoomSGIX","GL_SGIX_framezoom"));
	 fn(factor1);
}}
#endif

#ifndef GL_SGIX_igloo_interface
#define GL_SGIX_igloo_interface
extern "C" {
}
namespace gl{

typedef void (*PFNGLIGLOOINTERFACESGIXPROC_HPP)(GLenum,const void *);
static inline void IglooInterfaceSGIX(GLenum pname1,const void * params1)
{
	static PFNGLIGLOOINTERFACESGIXPROC_HPP fn=reinterpret_cast<PFNGLIGLOOINTERFACESGIXPROC_HPP>(_impl::_get_proc_address("glIglooInterfaceSGIX","GL_SGIX_igloo_interface"));
	 fn(pname1,params1);
}}
#endif

#ifndef GL_SGIX_instruments
#define GL_SGIX_instruments
#ifndef GL_INSTRUMENT_BUFFER_POINTER_SGIX
#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180
#endif //GL_INSTRUMENT_BUFFER_POINTER_SGIX
#ifndef GL_INSTRUMENT_MEASUREMENTS_SGIX
#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181
#endif //GL_INSTRUMENT_MEASUREMENTS_SGIX
extern "C" {
}
namespace gl{

typedef GLint (*PFNGLGETINSTRUMENTSSGIXPROC_HPP)();
static inline GLint GetInstrumentsSGIX()
{
	static PFNGLGETINSTRUMENTSSGIXPROC_HPP fn=reinterpret_cast<PFNGLGETINSTRUMENTSSGIXPROC_HPP>(_impl::_get_proc_address("glGetInstrumentsSGIX","GL_SGIX_instruments"));
	return fn();
}
typedef void (*PFNGLINSTRUMENTSBUFFERSGIXPROC_HPP)(GLsizei,GLint *);
static inline void InstrumentsBufferSGIX(GLsizei size1,GLint * buffer1)
{
	static PFNGLINSTRUMENTSBUFFERSGIXPROC_HPP fn=reinterpret_cast<PFNGLINSTRUMENTSBUFFERSGIXPROC_HPP>(_impl::_get_proc_address("glInstrumentsBufferSGIX","GL_SGIX_instruments"));
	 fn(size1,buffer1);
}
typedef GLint (*PFNGLPOLLINSTRUMENTSSGIXPROC_HPP)(GLint *);
static inline GLint PollInstrumentsSGIX(GLint * marker_p1)
{
	static PFNGLPOLLINSTRUMENTSSGIXPROC_HPP fn=reinterpret_cast<PFNGLPOLLINSTRUMENTSSGIXPROC_HPP>(_impl::_get_proc_address("glPollInstrumentsSGIX","GL_SGIX_instruments"));
	return fn(marker_p1);
}
typedef void (*PFNGLREADINSTRUMENTSSGIXPROC_HPP)(GLint);
static inline void ReadInstrumentsSGIX(GLint marker1)
{
	static PFNGLREADINSTRUMENTSSGIXPROC_HPP fn=reinterpret_cast<PFNGLREADINSTRUMENTSSGIXPROC_HPP>(_impl::_get_proc_address("glReadInstrumentsSGIX","GL_SGIX_instruments"));
	 fn(marker1);
}
typedef void (*PFNGLSTARTINSTRUMENTSSGIXPROC_HPP)();
static inline void StartInstrumentsSGIX()
{
	static PFNGLSTARTINSTRUMENTSSGIXPROC_HPP fn=reinterpret_cast<PFNGLSTARTINSTRUMENTSSGIXPROC_HPP>(_impl::_get_proc_address("glStartInstrumentsSGIX","GL_SGIX_instruments"));
	 fn();
}
typedef void (*PFNGLSTOPINSTRUMENTSSGIXPROC_HPP)(GLint);
static inline void StopInstrumentsSGIX(GLint marker1)
{
	static PFNGLSTOPINSTRUMENTSSGIXPROC_HPP fn=reinterpret_cast<PFNGLSTOPINSTRUMENTSSGIXPROC_HPP>(_impl::_get_proc_address("glStopInstrumentsSGIX","GL_SGIX_instruments"));
	 fn(marker1);
}}
#endif

#ifndef GL_SGIX_interlace
#define GL_SGIX_interlace
#ifndef GL_INTERLACE_SGIX
#define GL_INTERLACE_SGIX 0x8094
#endif //GL_INTERLACE_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_ir_instrument1
#define GL_SGIX_ir_instrument1
#ifndef GL_IR_INSTRUMENT1_SGIX
#define GL_IR_INSTRUMENT1_SGIX 0x817F
#endif //GL_IR_INSTRUMENT1_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_list_priority
#define GL_SGIX_list_priority
#ifndef GL_LIST_PRIORITY_SGIX
#define GL_LIST_PRIORITY_SGIX 0x8182
#endif //GL_LIST_PRIORITY_SGIX
extern "C" {
}
namespace gl{

typedef void (*PFNGLGETLISTPARAMETERFVSGIXPROC_HPP)(GLuint,GLenum,GLfloat *);
static inline void GetListParameterfvSGIX(GLuint list1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETLISTPARAMETERFVSGIXPROC_HPP fn=reinterpret_cast<PFNGLGETLISTPARAMETERFVSGIXPROC_HPP>(_impl::_get_proc_address("glGetListParameterfvSGIX","GL_SGIX_list_priority"));
	 fn(list1,pname1,params1);
}
typedef void (*PFNGLGETLISTPARAMETERIVSGIXPROC_HPP)(GLuint,GLenum,GLint *);
static inline void GetListParameterivSGIX(GLuint list1,GLenum pname1,GLint * params1)
{
	static PFNGLGETLISTPARAMETERIVSGIXPROC_HPP fn=reinterpret_cast<PFNGLGETLISTPARAMETERIVSGIXPROC_HPP>(_impl::_get_proc_address("glGetListParameterivSGIX","GL_SGIX_list_priority"));
	 fn(list1,pname1,params1);
}
typedef void (*PFNGLLISTPARAMETERFSGIXPROC_HPP)(GLuint,GLenum,GLfloat);
static inline void ListParameterfSGIX(GLuint list1,GLenum pname1,GLfloat param1)
{
	static PFNGLLISTPARAMETERFSGIXPROC_HPP fn=reinterpret_cast<PFNGLLISTPARAMETERFSGIXPROC_HPP>(_impl::_get_proc_address("glListParameterfSGIX","GL_SGIX_list_priority"));
	 fn(list1,pname1,param1);
}
typedef void (*PFNGLLISTPARAMETERFVSGIXPROC_HPP)(GLuint,GLenum,const GLfloat *);
static inline void ListParameterfvSGIX(GLuint list1,GLenum pname1,const GLfloat * params1)
{
	static PFNGLLISTPARAMETERFVSGIXPROC_HPP fn=reinterpret_cast<PFNGLLISTPARAMETERFVSGIXPROC_HPP>(_impl::_get_proc_address("glListParameterfvSGIX","GL_SGIX_list_priority"));
	 fn(list1,pname1,params1);
}
typedef void (*PFNGLLISTPARAMETERISGIXPROC_HPP)(GLuint,GLenum,GLint);
static inline void ListParameteriSGIX(GLuint list1,GLenum pname1,GLint param1)
{
	static PFNGLLISTPARAMETERISGIXPROC_HPP fn=reinterpret_cast<PFNGLLISTPARAMETERISGIXPROC_HPP>(_impl::_get_proc_address("glListParameteriSGIX","GL_SGIX_list_priority"));
	 fn(list1,pname1,param1);
}
typedef void (*PFNGLLISTPARAMETERIVSGIXPROC_HPP)(GLuint,GLenum,const GLint *);
static inline void ListParameterivSGIX(GLuint list1,GLenum pname1,const GLint * params1)
{
	static PFNGLLISTPARAMETERIVSGIXPROC_HPP fn=reinterpret_cast<PFNGLLISTPARAMETERIVSGIXPROC_HPP>(_impl::_get_proc_address("glListParameterivSGIX","GL_SGIX_list_priority"));
	 fn(list1,pname1,params1);
}}
#endif

#ifndef GL_SGIX_pixel_texture
#define GL_SGIX_pixel_texture
#ifndef GL_PIXEL_TEX_GEN_SGIX
#define GL_PIXEL_TEX_GEN_SGIX 0x8139
#endif //GL_PIXEL_TEX_GEN_SGIX
#ifndef GL_PIXEL_TEX_GEN_MODE_SGIX
#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B
#endif //GL_PIXEL_TEX_GEN_MODE_SGIX
extern "C" {
}
namespace gl{

typedef void (*PFNGLPIXELTEXGENSGIXPROC_HPP)(GLenum);
static inline void PixelTexGenSGIX(GLenum mode1)
{
	static PFNGLPIXELTEXGENSGIXPROC_HPP fn=reinterpret_cast<PFNGLPIXELTEXGENSGIXPROC_HPP>(_impl::_get_proc_address("glPixelTexGenSGIX","GL_SGIX_pixel_texture"));
	 fn(mode1);
}}
#endif

#ifndef GL_SGIX_pixel_tiles
#define GL_SGIX_pixel_tiles
#ifndef GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX
#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E
#endif //GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX
#ifndef GL_PIXEL_TILE_CACHE_INCREMENT_SGIX
#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F
#endif //GL_PIXEL_TILE_CACHE_INCREMENT_SGIX
#ifndef GL_PIXEL_TILE_WIDTH_SGIX
#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140
#endif //GL_PIXEL_TILE_WIDTH_SGIX
#ifndef GL_PIXEL_TILE_HEIGHT_SGIX
#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141
#endif //GL_PIXEL_TILE_HEIGHT_SGIX
#ifndef GL_PIXEL_TILE_GRID_WIDTH_SGIX
#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142
#endif //GL_PIXEL_TILE_GRID_WIDTH_SGIX
#ifndef GL_PIXEL_TILE_GRID_HEIGHT_SGIX
#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143
#endif //GL_PIXEL_TILE_GRID_HEIGHT_SGIX
#ifndef GL_PIXEL_TILE_GRID_DEPTH_SGIX
#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144
#endif //GL_PIXEL_TILE_GRID_DEPTH_SGIX
#ifndef GL_PIXEL_TILE_CACHE_SIZE_SGIX
#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145
#endif //GL_PIXEL_TILE_CACHE_SIZE_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_polynomial_ffd
#define GL_SGIX_polynomial_ffd
#ifndef GL_TEXTURE_DEFORMATION_BIT_SGIX
#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001
#endif //GL_TEXTURE_DEFORMATION_BIT_SGIX
#ifndef GL_GEOMETRY_DEFORMATION_BIT_SGIX
#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002
#endif //GL_GEOMETRY_DEFORMATION_BIT_SGIX
#ifndef GL_GEOMETRY_DEFORMATION_SGIX
#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194
#endif //GL_GEOMETRY_DEFORMATION_SGIX
#ifndef GL_TEXTURE_DEFORMATION_SGIX
#define GL_TEXTURE_DEFORMATION_SGIX 0x8195
#endif //GL_TEXTURE_DEFORMATION_SGIX
#ifndef GL_DEFORMATIONS_MASK_SGIX
#define GL_DEFORMATIONS_MASK_SGIX 0x8196
#endif //GL_DEFORMATIONS_MASK_SGIX
#ifndef GL_MAX_DEFORMATION_ORDER_SGIX
#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197
#endif //GL_MAX_DEFORMATION_ORDER_SGIX
extern "C" {
}
namespace gl{

typedef void (*PFNGLDEFORMSGIXPROC_HPP)(GLbitfield);
static inline void DeformSGIX(GLbitfield mask1)
{
	static PFNGLDEFORMSGIXPROC_HPP fn=reinterpret_cast<PFNGLDEFORMSGIXPROC_HPP>(_impl::_get_proc_address("glDeformSGIX","GL_SGIX_polynomial_ffd"));
	 fn(mask1);
}
typedef void (*PFNGLDEFORMATIONMAP3DSGIXPROC_HPP)(GLenum,GLdouble,GLdouble,GLint,GLint,GLdouble,GLdouble,GLint,GLint,GLdouble,GLdouble,GLint,GLint,const GLdouble *);
static inline void DeformationMap3dSGIX(GLenum target1,GLdouble u11,GLdouble u21,GLint ustride1,GLint uorder1,GLdouble v11,GLdouble v21,GLint vstride1,GLint vorder1,GLdouble w11,GLdouble w21,GLint wstride1,GLint worder1,const GLdouble * points1)
{
	static PFNGLDEFORMATIONMAP3DSGIXPROC_HPP fn=reinterpret_cast<PFNGLDEFORMATIONMAP3DSGIXPROC_HPP>(_impl::_get_proc_address("glDeformationMap3dSGIX","GL_SGIX_polynomial_ffd"));
	 fn(target1,u11,u21,ustride1,uorder1,v11,v21,vstride1,vorder1,w11,w21,wstride1,worder1,points1);
}
typedef void (*PFNGLDEFORMATIONMAP3FSGIXPROC_HPP)(GLenum,GLfloat,GLfloat,GLint,GLint,GLfloat,GLfloat,GLint,GLint,GLfloat,GLfloat,GLint,GLint,const GLfloat *);
static inline void DeformationMap3fSGIX(GLenum target1,GLfloat u11,GLfloat u21,GLint ustride1,GLint uorder1,GLfloat v11,GLfloat v21,GLint vstride1,GLint vorder1,GLfloat w11,GLfloat w21,GLint wstride1,GLint worder1,const GLfloat * points1)
{
	static PFNGLDEFORMATIONMAP3FSGIXPROC_HPP fn=reinterpret_cast<PFNGLDEFORMATIONMAP3FSGIXPROC_HPP>(_impl::_get_proc_address("glDeformationMap3fSGIX","GL_SGIX_polynomial_ffd"));
	 fn(target1,u11,u21,ustride1,uorder1,v11,v21,vstride1,vorder1,w11,w21,wstride1,worder1,points1);
}
typedef void (*PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC_HPP)(GLbitfield);
static inline void LoadIdentityDeformationMapSGIX(GLbitfield mask1)
{
	static PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC_HPP fn=reinterpret_cast<PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC_HPP>(_impl::_get_proc_address("glLoadIdentityDeformationMapSGIX","GL_SGIX_polynomial_ffd"));
	 fn(mask1);
}}
#endif

#ifndef GL_SGIX_reference_plane
#define GL_SGIX_reference_plane
#ifndef GL_REFERENCE_PLANE_SGIX
#define GL_REFERENCE_PLANE_SGIX 0x817D
#endif //GL_REFERENCE_PLANE_SGIX
#ifndef GL_REFERENCE_PLANE_EQUATION_SGIX
#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E
#endif //GL_REFERENCE_PLANE_EQUATION_SGIX
extern "C" {
}
namespace gl{

typedef void (*PFNGLREFERENCEPLANESGIXPROC_HPP)(const GLdouble *);
static inline void ReferencePlaneSGIX(const GLdouble * equation1)
{
	static PFNGLREFERENCEPLANESGIXPROC_HPP fn=reinterpret_cast<PFNGLREFERENCEPLANESGIXPROC_HPP>(_impl::_get_proc_address("glReferencePlaneSGIX","GL_SGIX_reference_plane"));
	 fn(equation1);
}}
#endif

#ifndef GL_SGIX_resample
#define GL_SGIX_resample
#ifndef GL_PACK_RESAMPLE_SGIX
#define GL_PACK_RESAMPLE_SGIX 0x842C
#endif //GL_PACK_RESAMPLE_SGIX
#ifndef GL_UNPACK_RESAMPLE_SGIX
#define GL_UNPACK_RESAMPLE_SGIX 0x842D
#endif //GL_UNPACK_RESAMPLE_SGIX
#ifndef GL_RESAMPLE_REPLICATE_SGIX
#define GL_RESAMPLE_REPLICATE_SGIX 0x842E
#endif //GL_RESAMPLE_REPLICATE_SGIX
#ifndef GL_RESAMPLE_ZERO_FILL_SGIX
#define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F
#endif //GL_RESAMPLE_ZERO_FILL_SGIX
#ifndef GL_RESAMPLE_DECIMATE_SGIX
#define GL_RESAMPLE_DECIMATE_SGIX 0x8430
#endif //GL_RESAMPLE_DECIMATE_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_scalebias_hint
#define GL_SGIX_scalebias_hint
#ifndef GL_SCALEBIAS_HINT_SGIX
#define GL_SCALEBIAS_HINT_SGIX 0x8322
#endif //GL_SCALEBIAS_HINT_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_shadow
#define GL_SGIX_shadow
#ifndef GL_TEXTURE_COMPARE_SGIX
#define GL_TEXTURE_COMPARE_SGIX 0x819A
#endif //GL_TEXTURE_COMPARE_SGIX
#ifndef GL_TEXTURE_COMPARE_OPERATOR_SGIX
#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B
#endif //GL_TEXTURE_COMPARE_OPERATOR_SGIX
#ifndef GL_TEXTURE_LEQUAL_R_SGIX
#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C
#endif //GL_TEXTURE_LEQUAL_R_SGIX
#ifndef GL_TEXTURE_GEQUAL_R_SGIX
#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D
#endif //GL_TEXTURE_GEQUAL_R_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_shadow_ambient
#define GL_SGIX_shadow_ambient
#ifndef GL_SHADOW_AMBIENT_SGIX
#define GL_SHADOW_AMBIENT_SGIX 0x80BF
#endif //GL_SHADOW_AMBIENT_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_sprite
#define GL_SGIX_sprite
#ifndef GL_SPRITE_SGIX
#define GL_SPRITE_SGIX 0x8148
#endif //GL_SPRITE_SGIX
#ifndef GL_SPRITE_MODE_SGIX
#define GL_SPRITE_MODE_SGIX 0x8149
#endif //GL_SPRITE_MODE_SGIX
#ifndef GL_SPRITE_AXIS_SGIX
#define GL_SPRITE_AXIS_SGIX 0x814A
#endif //GL_SPRITE_AXIS_SGIX
#ifndef GL_SPRITE_TRANSLATION_SGIX
#define GL_SPRITE_TRANSLATION_SGIX 0x814B
#endif //GL_SPRITE_TRANSLATION_SGIX
#ifndef GL_SPRITE_AXIAL_SGIX
#define GL_SPRITE_AXIAL_SGIX 0x814C
#endif //GL_SPRITE_AXIAL_SGIX
#ifndef GL_SPRITE_OBJECT_ALIGNED_SGIX
#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D
#endif //GL_SPRITE_OBJECT_ALIGNED_SGIX
#ifndef GL_SPRITE_EYE_ALIGNED_SGIX
#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E
#endif //GL_SPRITE_EYE_ALIGNED_SGIX
extern "C" {
}
namespace gl{

typedef void (*PFNGLSPRITEPARAMETERFSGIXPROC_HPP)(GLenum,GLfloat);
static inline void SpriteParameterfSGIX(GLenum pname1,GLfloat param1)
{
	static PFNGLSPRITEPARAMETERFSGIXPROC_HPP fn=reinterpret_cast<PFNGLSPRITEPARAMETERFSGIXPROC_HPP>(_impl::_get_proc_address("glSpriteParameterfSGIX","GL_SGIX_sprite"));
	 fn(pname1,param1);
}
typedef void (*PFNGLSPRITEPARAMETERFVSGIXPROC_HPP)(GLenum,const GLfloat *);
static inline void SpriteParameterfvSGIX(GLenum pname1,const GLfloat * params1)
{
	static PFNGLSPRITEPARAMETERFVSGIXPROC_HPP fn=reinterpret_cast<PFNGLSPRITEPARAMETERFVSGIXPROC_HPP>(_impl::_get_proc_address("glSpriteParameterfvSGIX","GL_SGIX_sprite"));
	 fn(pname1,params1);
}
typedef void (*PFNGLSPRITEPARAMETERISGIXPROC_HPP)(GLenum,GLint);
static inline void SpriteParameteriSGIX(GLenum pname1,GLint param1)
{
	static PFNGLSPRITEPARAMETERISGIXPROC_HPP fn=reinterpret_cast<PFNGLSPRITEPARAMETERISGIXPROC_HPP>(_impl::_get_proc_address("glSpriteParameteriSGIX","GL_SGIX_sprite"));
	 fn(pname1,param1);
}
typedef void (*PFNGLSPRITEPARAMETERIVSGIXPROC_HPP)(GLenum,const GLint *);
static inline void SpriteParameterivSGIX(GLenum pname1,const GLint * params1)
{
	static PFNGLSPRITEPARAMETERIVSGIXPROC_HPP fn=reinterpret_cast<PFNGLSPRITEPARAMETERIVSGIXPROC_HPP>(_impl::_get_proc_address("glSpriteParameterivSGIX","GL_SGIX_sprite"));
	 fn(pname1,params1);
}}
#endif

#ifndef GL_SGIX_subsample
#define GL_SGIX_subsample
#ifndef GL_PACK_SUBSAMPLE_RATE_SGIX
#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0
#endif //GL_PACK_SUBSAMPLE_RATE_SGIX
#ifndef GL_UNPACK_SUBSAMPLE_RATE_SGIX
#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1
#endif //GL_UNPACK_SUBSAMPLE_RATE_SGIX
#ifndef GL_PIXEL_SUBSAMPLE_4444_SGIX
#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2
#endif //GL_PIXEL_SUBSAMPLE_4444_SGIX
#ifndef GL_PIXEL_SUBSAMPLE_2424_SGIX
#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3
#endif //GL_PIXEL_SUBSAMPLE_2424_SGIX
#ifndef GL_PIXEL_SUBSAMPLE_4242_SGIX
#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4
#endif //GL_PIXEL_SUBSAMPLE_4242_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_tag_sample_buffer
#define GL_SGIX_tag_sample_buffer
extern "C" {
}
namespace gl{

typedef void (*PFNGLTAGSAMPLEBUFFERSGIXPROC_HPP)();
static inline void TagSampleBufferSGIX()
{
	static PFNGLTAGSAMPLEBUFFERSGIXPROC_HPP fn=reinterpret_cast<PFNGLTAGSAMPLEBUFFERSGIXPROC_HPP>(_impl::_get_proc_address("glTagSampleBufferSGIX","GL_SGIX_tag_sample_buffer"));
	 fn();
}}
#endif

#ifndef GL_SGIX_texture_add_env
#define GL_SGIX_texture_add_env
#ifndef GL_TEXTURE_ENV_BIAS_SGIX
#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE
#endif //GL_TEXTURE_ENV_BIAS_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_texture_coordinate_clamp
#define GL_SGIX_texture_coordinate_clamp
#ifndef GL_TEXTURE_MAX_CLAMP_S_SGIX
#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369
#endif //GL_TEXTURE_MAX_CLAMP_S_SGIX
#ifndef GL_TEXTURE_MAX_CLAMP_T_SGIX
#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A
#endif //GL_TEXTURE_MAX_CLAMP_T_SGIX
#ifndef GL_TEXTURE_MAX_CLAMP_R_SGIX
#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B
#endif //GL_TEXTURE_MAX_CLAMP_R_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_texture_lod_bias
#define GL_SGIX_texture_lod_bias
#ifndef GL_TEXTURE_LOD_BIAS_S_SGIX
#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E
#endif //GL_TEXTURE_LOD_BIAS_S_SGIX
#ifndef GL_TEXTURE_LOD_BIAS_T_SGIX
#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F
#endif //GL_TEXTURE_LOD_BIAS_T_SGIX
#ifndef GL_TEXTURE_LOD_BIAS_R_SGIX
#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190
#endif //GL_TEXTURE_LOD_BIAS_R_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_texture_multi_buffer
#define GL_SGIX_texture_multi_buffer
#ifndef GL_TEXTURE_MULTI_BUFFER_HINT_SGIX
#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E
#endif //GL_TEXTURE_MULTI_BUFFER_HINT_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_texture_scale_bias
#define GL_SGIX_texture_scale_bias
#ifndef GL_POST_TEXTURE_FILTER_BIAS_SGIX
#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179
#endif //GL_POST_TEXTURE_FILTER_BIAS_SGIX
#ifndef GL_POST_TEXTURE_FILTER_SCALE_SGIX
#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A
#endif //GL_POST_TEXTURE_FILTER_SCALE_SGIX
#ifndef GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX
#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B
#endif //GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX
#ifndef GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX
#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C
#endif //GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_vertex_preclip
#define GL_SGIX_vertex_preclip
#ifndef GL_VERTEX_PRECLIP_SGIX
#define GL_VERTEX_PRECLIP_SGIX 0x83EE
#endif //GL_VERTEX_PRECLIP_SGIX
#ifndef GL_VERTEX_PRECLIP_HINT_SGIX
#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF
#endif //GL_VERTEX_PRECLIP_HINT_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_ycrcb
#define GL_SGIX_ycrcb
#ifndef GL_YCRCB_422_SGIX
#define GL_YCRCB_422_SGIX 0x81BB
#endif //GL_YCRCB_422_SGIX
#ifndef GL_YCRCB_444_SGIX
#define GL_YCRCB_444_SGIX 0x81BC
#endif //GL_YCRCB_444_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_ycrcb_subsample
#define GL_SGIX_ycrcb_subsample
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGIX_ycrcba
#define GL_SGIX_ycrcba
#ifndef GL_YCRCB_SGIX
#define GL_YCRCB_SGIX 0x8318
#endif //GL_YCRCB_SGIX
#ifndef GL_YCRCBA_SGIX
#define GL_YCRCBA_SGIX 0x8319
#endif //GL_YCRCBA_SGIX
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGI_color_matrix
#define GL_SGI_color_matrix
#ifndef GL_COLOR_MATRIX_SGI
#define GL_COLOR_MATRIX_SGI 0x80B1
#endif //GL_COLOR_MATRIX_SGI
#ifndef GL_COLOR_MATRIX_STACK_DEPTH_SGI
#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2
#endif //GL_COLOR_MATRIX_STACK_DEPTH_SGI
#ifndef GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3
#endif //GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
#ifndef GL_POST_COLOR_MATRIX_RED_SCALE_SGI
#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4
#endif //GL_POST_COLOR_MATRIX_RED_SCALE_SGI
#ifndef GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5
#endif //GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
#ifndef GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6
#endif //GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
#ifndef GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7
#endif //GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
#ifndef GL_POST_COLOR_MATRIX_RED_BIAS_SGI
#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8
#endif //GL_POST_COLOR_MATRIX_RED_BIAS_SGI
#ifndef GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9
#endif //GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
#ifndef GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA
#endif //GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
#ifndef GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB
#endif //GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SGI_color_table
#define GL_SGI_color_table
#ifndef GL_COLOR_TABLE_SGI
#define GL_COLOR_TABLE_SGI 0x80D0
#endif //GL_COLOR_TABLE_SGI
#ifndef GL_POST_CONVOLUTION_COLOR_TABLE_SGI
#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1
#endif //GL_POST_CONVOLUTION_COLOR_TABLE_SGI
#ifndef GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2
#endif //GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
#ifndef GL_PROXY_COLOR_TABLE_SGI
#define GL_PROXY_COLOR_TABLE_SGI 0x80D3
#endif //GL_PROXY_COLOR_TABLE_SGI
#ifndef GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI
#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4
#endif //GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI
#ifndef GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI
#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5
#endif //GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI
#ifndef GL_COLOR_TABLE_SCALE_SGI
#define GL_COLOR_TABLE_SCALE_SGI 0x80D6
#endif //GL_COLOR_TABLE_SCALE_SGI
#ifndef GL_COLOR_TABLE_BIAS_SGI
#define GL_COLOR_TABLE_BIAS_SGI 0x80D7
#endif //GL_COLOR_TABLE_BIAS_SGI
#ifndef GL_COLOR_TABLE_FORMAT_SGI
#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8
#endif //GL_COLOR_TABLE_FORMAT_SGI
#ifndef GL_COLOR_TABLE_WIDTH_SGI
#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9
#endif //GL_COLOR_TABLE_WIDTH_SGI
#ifndef GL_COLOR_TABLE_RED_SIZE_SGI
#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA
#endif //GL_COLOR_TABLE_RED_SIZE_SGI
#ifndef GL_COLOR_TABLE_GREEN_SIZE_SGI
#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB
#endif //GL_COLOR_TABLE_GREEN_SIZE_SGI
#ifndef GL_COLOR_TABLE_BLUE_SIZE_SGI
#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC
#endif //GL_COLOR_TABLE_BLUE_SIZE_SGI
#ifndef GL_COLOR_TABLE_ALPHA_SIZE_SGI
#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD
#endif //GL_COLOR_TABLE_ALPHA_SIZE_SGI
#ifndef GL_COLOR_TABLE_LUMINANCE_SIZE_SGI
#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE
#endif //GL_COLOR_TABLE_LUMINANCE_SIZE_SGI
#ifndef GL_COLOR_TABLE_INTENSITY_SIZE_SGI
#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF
#endif //GL_COLOR_TABLE_INTENSITY_SIZE_SGI
extern "C" {
}
namespace gl{

typedef void (*PFNGLCOLORTABLEPARAMETERFVSGIPROC_HPP)(GLenum,GLenum,const GLfloat *);
static inline void ColorTableParameterfvSGI(GLenum target1,GLenum pname1,const GLfloat * params1)
{
	static PFNGLCOLORTABLEPARAMETERFVSGIPROC_HPP fn=reinterpret_cast<PFNGLCOLORTABLEPARAMETERFVSGIPROC_HPP>(_impl::_get_proc_address("glColorTableParameterfvSGI","GL_SGI_color_table"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLCOLORTABLEPARAMETERIVSGIPROC_HPP)(GLenum,GLenum,const GLint *);
static inline void ColorTableParameterivSGI(GLenum target1,GLenum pname1,const GLint * params1)
{
	static PFNGLCOLORTABLEPARAMETERIVSGIPROC_HPP fn=reinterpret_cast<PFNGLCOLORTABLEPARAMETERIVSGIPROC_HPP>(_impl::_get_proc_address("glColorTableParameterivSGI","GL_SGI_color_table"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLCOLORTABLESGIPROC_HPP)(GLenum,GLenum,GLsizei,GLenum,GLenum,const void *);
static inline void ColorTableSGI(GLenum target1,GLenum internalformat1,GLsizei width1,GLenum format1,GLenum type1,const void * table1)
{
	static PFNGLCOLORTABLESGIPROC_HPP fn=reinterpret_cast<PFNGLCOLORTABLESGIPROC_HPP>(_impl::_get_proc_address("glColorTableSGI","GL_SGI_color_table"));
	 fn(target1,internalformat1,width1,format1,type1,table1);
}
typedef void (*PFNGLCOPYCOLORTABLESGIPROC_HPP)(GLenum,GLenum,GLint,GLint,GLsizei);
static inline void CopyColorTableSGI(GLenum target1,GLenum internalformat1,GLint x1,GLint y1,GLsizei width1)
{
	static PFNGLCOPYCOLORTABLESGIPROC_HPP fn=reinterpret_cast<PFNGLCOPYCOLORTABLESGIPROC_HPP>(_impl::_get_proc_address("glCopyColorTableSGI","GL_SGI_color_table"));
	 fn(target1,internalformat1,x1,y1,width1);
}
typedef void (*PFNGLGETCOLORTABLEPARAMETERFVSGIPROC_HPP)(GLenum,GLenum,GLfloat *);
static inline void GetColorTableParameterfvSGI(GLenum target1,GLenum pname1,GLfloat * params1)
{
	static PFNGLGETCOLORTABLEPARAMETERFVSGIPROC_HPP fn=reinterpret_cast<PFNGLGETCOLORTABLEPARAMETERFVSGIPROC_HPP>(_impl::_get_proc_address("glGetColorTableParameterfvSGI","GL_SGI_color_table"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETCOLORTABLEPARAMETERIVSGIPROC_HPP)(GLenum,GLenum,GLint *);
static inline void GetColorTableParameterivSGI(GLenum target1,GLenum pname1,GLint * params1)
{
	static PFNGLGETCOLORTABLEPARAMETERIVSGIPROC_HPP fn=reinterpret_cast<PFNGLGETCOLORTABLEPARAMETERIVSGIPROC_HPP>(_impl::_get_proc_address("glGetColorTableParameterivSGI","GL_SGI_color_table"));
	 fn(target1,pname1,params1);
}
typedef void (*PFNGLGETCOLORTABLESGIPROC_HPP)(GLenum,GLenum,GLenum,void *);
static inline void GetColorTableSGI(GLenum target1,GLenum format1,GLenum type1,void * table1)
{
	static PFNGLGETCOLORTABLESGIPROC_HPP fn=reinterpret_cast<PFNGLGETCOLORTABLESGIPROC_HPP>(_impl::_get_proc_address("glGetColorTableSGI","GL_SGI_color_table"));
	 fn(target1,format1,type1,table1);
}}
#endif

#ifndef GL_SGI_texture_color_table
#define GL_SGI_texture_color_table
#ifndef GL_TEXTURE_COLOR_TABLE_SGI
#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC
#endif //GL_TEXTURE_COLOR_TABLE_SGI
#ifndef GL_PROXY_TEXTURE_COLOR_TABLE_SGI
#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD
#endif //GL_PROXY_TEXTURE_COLOR_TABLE_SGI
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SUNX_constant_data
#define GL_SUNX_constant_data
#ifndef GL_UNPACK_CONSTANT_DATA_SUNX
#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5
#endif //GL_UNPACK_CONSTANT_DATA_SUNX
#ifndef GL_TEXTURE_CONSTANT_DATA_SUNX
#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6
#endif //GL_TEXTURE_CONSTANT_DATA_SUNX
extern "C" {
}
namespace gl{

typedef void (*PFNGLFINISHTEXTURESUNXPROC_HPP)();
static inline void FinishTextureSUNX()
{
	static PFNGLFINISHTEXTURESUNXPROC_HPP fn=reinterpret_cast<PFNGLFINISHTEXTURESUNXPROC_HPP>(_impl::_get_proc_address("glFinishTextureSUNX","GL_SUNX_constant_data"));
	 fn();
}}
#endif

#ifndef GL_SUN_convolution_border_modes
#define GL_SUN_convolution_border_modes
#ifndef GL_WRAP_BORDER_SUN
#define GL_WRAP_BORDER_SUN 0x81D4
#endif //GL_WRAP_BORDER_SUN
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SUN_global_alpha
#define GL_SUN_global_alpha
#ifndef GL_GLOBAL_ALPHA_SUN
#define GL_GLOBAL_ALPHA_SUN 0x81D9
#endif //GL_GLOBAL_ALPHA_SUN
#ifndef GL_GLOBAL_ALPHA_FACTOR_SUN
#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA
#endif //GL_GLOBAL_ALPHA_FACTOR_SUN
extern "C" {
}
namespace gl{

typedef void (*PFNGLGLOBALALPHAFACTORBSUNPROC_HPP)(GLbyte);
static inline void GlobalAlphaFactorbSUN(GLbyte factor1)
{
	static PFNGLGLOBALALPHAFACTORBSUNPROC_HPP fn=reinterpret_cast<PFNGLGLOBALALPHAFACTORBSUNPROC_HPP>(_impl::_get_proc_address("glGlobalAlphaFactorbSUN","GL_SUN_global_alpha"));
	 fn(factor1);
}
typedef void (*PFNGLGLOBALALPHAFACTORDSUNPROC_HPP)(GLdouble);
static inline void GlobalAlphaFactordSUN(GLdouble factor1)
{
	static PFNGLGLOBALALPHAFACTORDSUNPROC_HPP fn=reinterpret_cast<PFNGLGLOBALALPHAFACTORDSUNPROC_HPP>(_impl::_get_proc_address("glGlobalAlphaFactordSUN","GL_SUN_global_alpha"));
	 fn(factor1);
}
typedef void (*PFNGLGLOBALALPHAFACTORFSUNPROC_HPP)(GLfloat);
static inline void GlobalAlphaFactorfSUN(GLfloat factor1)
{
	static PFNGLGLOBALALPHAFACTORFSUNPROC_HPP fn=reinterpret_cast<PFNGLGLOBALALPHAFACTORFSUNPROC_HPP>(_impl::_get_proc_address("glGlobalAlphaFactorfSUN","GL_SUN_global_alpha"));
	 fn(factor1);
}
typedef void (*PFNGLGLOBALALPHAFACTORISUNPROC_HPP)(GLint);
static inline void GlobalAlphaFactoriSUN(GLint factor1)
{
	static PFNGLGLOBALALPHAFACTORISUNPROC_HPP fn=reinterpret_cast<PFNGLGLOBALALPHAFACTORISUNPROC_HPP>(_impl::_get_proc_address("glGlobalAlphaFactoriSUN","GL_SUN_global_alpha"));
	 fn(factor1);
}
typedef void (*PFNGLGLOBALALPHAFACTORSSUNPROC_HPP)(GLshort);
static inline void GlobalAlphaFactorsSUN(GLshort factor1)
{
	static PFNGLGLOBALALPHAFACTORSSUNPROC_HPP fn=reinterpret_cast<PFNGLGLOBALALPHAFACTORSSUNPROC_HPP>(_impl::_get_proc_address("glGlobalAlphaFactorsSUN","GL_SUN_global_alpha"));
	 fn(factor1);
}
typedef void (*PFNGLGLOBALALPHAFACTORUBSUNPROC_HPP)(GLubyte);
static inline void GlobalAlphaFactorubSUN(GLubyte factor1)
{
	static PFNGLGLOBALALPHAFACTORUBSUNPROC_HPP fn=reinterpret_cast<PFNGLGLOBALALPHAFACTORUBSUNPROC_HPP>(_impl::_get_proc_address("glGlobalAlphaFactorubSUN","GL_SUN_global_alpha"));
	 fn(factor1);
}
typedef void (*PFNGLGLOBALALPHAFACTORUISUNPROC_HPP)(GLuint);
static inline void GlobalAlphaFactoruiSUN(GLuint factor1)
{
	static PFNGLGLOBALALPHAFACTORUISUNPROC_HPP fn=reinterpret_cast<PFNGLGLOBALALPHAFACTORUISUNPROC_HPP>(_impl::_get_proc_address("glGlobalAlphaFactoruiSUN","GL_SUN_global_alpha"));
	 fn(factor1);
}
typedef void (*PFNGLGLOBALALPHAFACTORUSSUNPROC_HPP)(GLushort);
static inline void GlobalAlphaFactorusSUN(GLushort factor1)
{
	static PFNGLGLOBALALPHAFACTORUSSUNPROC_HPP fn=reinterpret_cast<PFNGLGLOBALALPHAFACTORUSSUNPROC_HPP>(_impl::_get_proc_address("glGlobalAlphaFactorusSUN","GL_SUN_global_alpha"));
	 fn(factor1);
}}
#endif

#ifndef GL_SUN_mesh_array
#define GL_SUN_mesh_array
#ifndef GL_QUAD_MESH_SUN
#define GL_QUAD_MESH_SUN 0x8614
#endif //GL_QUAD_MESH_SUN
#ifndef GL_TRIANGLE_MESH_SUN
#define GL_TRIANGLE_MESH_SUN 0x8615
#endif //GL_TRIANGLE_MESH_SUN
extern "C" {
}
namespace gl{

typedef void (*PFNGLDRAWMESHARRAYSSUNPROC_HPP)(GLenum,GLint,GLsizei,GLsizei);
static inline void DrawMeshArraysSUN(GLenum mode1,GLint first1,GLsizei count1,GLsizei width1)
{
	static PFNGLDRAWMESHARRAYSSUNPROC_HPP fn=reinterpret_cast<PFNGLDRAWMESHARRAYSSUNPROC_HPP>(_impl::_get_proc_address("glDrawMeshArraysSUN","GL_SUN_mesh_array"));
	 fn(mode1,first1,count1,width1);
}}
#endif

#ifndef GL_SUN_slice_accum
#define GL_SUN_slice_accum
#ifndef GL_SLICE_ACCUM_SUN
#define GL_SLICE_ACCUM_SUN 0x85CC
#endif //GL_SLICE_ACCUM_SUN
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_SUN_triangle_list
#define GL_SUN_triangle_list
#ifndef GL_RESTART_SUN
#define GL_RESTART_SUN 0x0001
#endif //GL_RESTART_SUN
#ifndef GL_REPLACE_MIDDLE_SUN
#define GL_REPLACE_MIDDLE_SUN 0x0002
#endif //GL_REPLACE_MIDDLE_SUN
#ifndef GL_REPLACE_OLDEST_SUN
#define GL_REPLACE_OLDEST_SUN 0x0003
#endif //GL_REPLACE_OLDEST_SUN
#ifndef GL_TRIANGLE_LIST_SUN
#define GL_TRIANGLE_LIST_SUN 0x81D7
#endif //GL_TRIANGLE_LIST_SUN
#ifndef GL_REPLACEMENT_CODE_SUN
#define GL_REPLACEMENT_CODE_SUN 0x81D8
#endif //GL_REPLACEMENT_CODE_SUN
#ifndef GL_REPLACEMENT_CODE_ARRAY_SUN
#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0
#endif //GL_REPLACEMENT_CODE_ARRAY_SUN
#ifndef GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN
#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1
#endif //GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN
#ifndef GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN
#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2
#endif //GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN
#ifndef GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN
#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3
#endif //GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN
#ifndef GL_R1UI_V3F_SUN
#define GL_R1UI_V3F_SUN 0x85C4
#endif //GL_R1UI_V3F_SUN
#ifndef GL_R1UI_C4UB_V3F_SUN
#define GL_R1UI_C4UB_V3F_SUN 0x85C5
#endif //GL_R1UI_C4UB_V3F_SUN
#ifndef GL_R1UI_C3F_V3F_SUN
#define GL_R1UI_C3F_V3F_SUN 0x85C6
#endif //GL_R1UI_C3F_V3F_SUN
#ifndef GL_R1UI_N3F_V3F_SUN
#define GL_R1UI_N3F_V3F_SUN 0x85C7
#endif //GL_R1UI_N3F_V3F_SUN
#ifndef GL_R1UI_C4F_N3F_V3F_SUN
#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8
#endif //GL_R1UI_C4F_N3F_V3F_SUN
#ifndef GL_R1UI_T2F_V3F_SUN
#define GL_R1UI_T2F_V3F_SUN 0x85C9
#endif //GL_R1UI_T2F_V3F_SUN
#ifndef GL_R1UI_T2F_N3F_V3F_SUN
#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA
#endif //GL_R1UI_T2F_N3F_V3F_SUN
#ifndef GL_R1UI_T2F_C4F_N3F_V3F_SUN
#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB
#endif //GL_R1UI_T2F_C4F_N3F_V3F_SUN
extern "C" {
}
namespace gl{

typedef void (*PFNGLREPLACEMENTCODEPOINTERSUNPROC_HPP)(GLenum,GLsizei,const void **);
static inline void ReplacementCodePointerSUN(GLenum type1,GLsizei stride1,const void ** pointer1)
{
	static PFNGLREPLACEMENTCODEPOINTERSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEPOINTERSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodePointerSUN","GL_SUN_triangle_list"));
	 fn(type1,stride1,pointer1);
}
typedef void (*PFNGLREPLACEMENTCODEUBSUNPROC_HPP)(GLubyte);
static inline void ReplacementCodeubSUN(GLubyte code1)
{
	static PFNGLREPLACEMENTCODEUBSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUBSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeubSUN","GL_SUN_triangle_list"));
	 fn(code1);
}
typedef void (*PFNGLREPLACEMENTCODEUBVSUNPROC_HPP)(const GLubyte *);
static inline void ReplacementCodeubvSUN(const GLubyte * code1)
{
	static PFNGLREPLACEMENTCODEUBVSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUBVSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeubvSUN","GL_SUN_triangle_list"));
	 fn(code1);
}
typedef void (*PFNGLREPLACEMENTCODEUISUNPROC_HPP)(GLuint);
static inline void ReplacementCodeuiSUN(GLuint code1)
{
	static PFNGLREPLACEMENTCODEUISUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUISUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeuiSUN","GL_SUN_triangle_list"));
	 fn(code1);
}
typedef void (*PFNGLREPLACEMENTCODEUIVSUNPROC_HPP)(const GLuint *);
static inline void ReplacementCodeuivSUN(const GLuint * code1)
{
	static PFNGLREPLACEMENTCODEUIVSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUIVSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeuivSUN","GL_SUN_triangle_list"));
	 fn(code1);
}
typedef void (*PFNGLREPLACEMENTCODEUSSUNPROC_HPP)(GLushort);
static inline void ReplacementCodeusSUN(GLushort code1)
{
	static PFNGLREPLACEMENTCODEUSSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUSSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeusSUN","GL_SUN_triangle_list"));
	 fn(code1);
}
typedef void (*PFNGLREPLACEMENTCODEUSVSUNPROC_HPP)(const GLushort *);
static inline void ReplacementCodeusvSUN(const GLushort * code1)
{
	static PFNGLREPLACEMENTCODEUSVSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUSVSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeusvSUN","GL_SUN_triangle_list"));
	 fn(code1);
}}
#endif

#ifndef GL_SUN_vertex
#define GL_SUN_vertex
extern "C" {
}
namespace gl{

typedef void (*PFNGLCOLOR3FVERTEX3FSUNPROC_HPP)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void Color3fVertex3fSUN(GLfloat r1,GLfloat g1,GLfloat b1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLCOLOR3FVERTEX3FSUNPROC_HPP fn=reinterpret_cast<PFNGLCOLOR3FVERTEX3FSUNPROC_HPP>(_impl::_get_proc_address("glColor3fVertex3fSUN","GL_SUN_vertex"));
	 fn(r1,g1,b1,x1,y1,z1);
}
typedef void (*PFNGLCOLOR3FVERTEX3FVSUNPROC_HPP)(const GLfloat *,const GLfloat *);
static inline void Color3fVertex3fvSUN(const GLfloat * c1,const GLfloat * v1)
{
	static PFNGLCOLOR3FVERTEX3FVSUNPROC_HPP fn=reinterpret_cast<PFNGLCOLOR3FVERTEX3FVSUNPROC_HPP>(_impl::_get_proc_address("glColor3fVertex3fvSUN","GL_SUN_vertex"));
	 fn(c1,v1);
}
typedef void (*PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC_HPP)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void Color4fNormal3fVertex3fSUN(GLfloat r1,GLfloat g1,GLfloat b1,GLfloat a1,GLfloat nx1,GLfloat ny1,GLfloat nz1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC_HPP fn=reinterpret_cast<PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC_HPP>(_impl::_get_proc_address("glColor4fNormal3fVertex3fSUN","GL_SUN_vertex"));
	 fn(r1,g1,b1,a1,nx1,ny1,nz1,x1,y1,z1);
}
typedef void (*PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC_HPP)(const GLfloat *,const GLfloat *,const GLfloat *);
static inline void Color4fNormal3fVertex3fvSUN(const GLfloat * c1,const GLfloat * n1,const GLfloat * v1)
{
	static PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC_HPP fn=reinterpret_cast<PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC_HPP>(_impl::_get_proc_address("glColor4fNormal3fVertex3fvSUN","GL_SUN_vertex"));
	 fn(c1,n1,v1);
}
typedef void (*PFNGLCOLOR4UBVERTEX2FSUNPROC_HPP)(GLubyte,GLubyte,GLubyte,GLubyte,GLfloat,GLfloat);
static inline void Color4ubVertex2fSUN(GLubyte r1,GLubyte g1,GLubyte b1,GLubyte a1,GLfloat x1,GLfloat y1)
{
	static PFNGLCOLOR4UBVERTEX2FSUNPROC_HPP fn=reinterpret_cast<PFNGLCOLOR4UBVERTEX2FSUNPROC_HPP>(_impl::_get_proc_address("glColor4ubVertex2fSUN","GL_SUN_vertex"));
	 fn(r1,g1,b1,a1,x1,y1);
}
typedef void (*PFNGLCOLOR4UBVERTEX2FVSUNPROC_HPP)(const GLubyte *,const GLfloat *);
static inline void Color4ubVertex2fvSUN(const GLubyte * c1,const GLfloat * v1)
{
	static PFNGLCOLOR4UBVERTEX2FVSUNPROC_HPP fn=reinterpret_cast<PFNGLCOLOR4UBVERTEX2FVSUNPROC_HPP>(_impl::_get_proc_address("glColor4ubVertex2fvSUN","GL_SUN_vertex"));
	 fn(c1,v1);
}
typedef void (*PFNGLCOLOR4UBVERTEX3FSUNPROC_HPP)(GLubyte,GLubyte,GLubyte,GLubyte,GLfloat,GLfloat,GLfloat);
static inline void Color4ubVertex3fSUN(GLubyte r1,GLubyte g1,GLubyte b1,GLubyte a1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLCOLOR4UBVERTEX3FSUNPROC_HPP fn=reinterpret_cast<PFNGLCOLOR4UBVERTEX3FSUNPROC_HPP>(_impl::_get_proc_address("glColor4ubVertex3fSUN","GL_SUN_vertex"));
	 fn(r1,g1,b1,a1,x1,y1,z1);
}
typedef void (*PFNGLCOLOR4UBVERTEX3FVSUNPROC_HPP)(const GLubyte *,const GLfloat *);
static inline void Color4ubVertex3fvSUN(const GLubyte * c1,const GLfloat * v1)
{
	static PFNGLCOLOR4UBVERTEX3FVSUNPROC_HPP fn=reinterpret_cast<PFNGLCOLOR4UBVERTEX3FVSUNPROC_HPP>(_impl::_get_proc_address("glColor4ubVertex3fvSUN","GL_SUN_vertex"));
	 fn(c1,v1);
}
typedef void (*PFNGLNORMAL3FVERTEX3FSUNPROC_HPP)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void Normal3fVertex3fSUN(GLfloat nx1,GLfloat ny1,GLfloat nz1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLNORMAL3FVERTEX3FSUNPROC_HPP fn=reinterpret_cast<PFNGLNORMAL3FVERTEX3FSUNPROC_HPP>(_impl::_get_proc_address("glNormal3fVertex3fSUN","GL_SUN_vertex"));
	 fn(nx1,ny1,nz1,x1,y1,z1);
}
typedef void (*PFNGLNORMAL3FVERTEX3FVSUNPROC_HPP)(const GLfloat *,const GLfloat *);
static inline void Normal3fVertex3fvSUN(const GLfloat * n1,const GLfloat * v1)
{
	static PFNGLNORMAL3FVERTEX3FVSUNPROC_HPP fn=reinterpret_cast<PFNGLNORMAL3FVERTEX3FVSUNPROC_HPP>(_impl::_get_proc_address("glNormal3fVertex3fvSUN","GL_SUN_vertex"));
	 fn(n1,v1);
}
typedef void (*PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC_HPP)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void ReplacementCodeuiColor3fVertex3fSUN(GLuint rc1,GLfloat r1,GLfloat g1,GLfloat b1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeuiColor3fVertex3fSUN","GL_SUN_vertex"));
	 fn(rc1,r1,g1,b1,x1,y1,z1);
}
typedef void (*PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC_HPP)(const GLuint *,const GLfloat *,const GLfloat *);
static inline void ReplacementCodeuiColor3fVertex3fvSUN(const GLuint * rc1,const GLfloat * c1,const GLfloat * v1)
{
	static PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeuiColor3fVertex3fvSUN","GL_SUN_vertex"));
	 fn(rc1,c1,v1);
}
typedef void (*PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC_HPP)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void ReplacementCodeuiColor4fNormal3fVertex3fSUN(GLuint rc1,GLfloat r1,GLfloat g1,GLfloat b1,GLfloat a1,GLfloat nx1,GLfloat ny1,GLfloat nz1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeuiColor4fNormal3fVertex3fSUN","GL_SUN_vertex"));
	 fn(rc1,r1,g1,b1,a1,nx1,ny1,nz1,x1,y1,z1);
}
typedef void (*PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC_HPP)(const GLuint *,const GLfloat *,const GLfloat *,const GLfloat *);
static inline void ReplacementCodeuiColor4fNormal3fVertex3fvSUN(const GLuint * rc1,const GLfloat * c1,const GLfloat * n1,const GLfloat * v1)
{
	static PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeuiColor4fNormal3fVertex3fvSUN","GL_SUN_vertex"));
	 fn(rc1,c1,n1,v1);
}
typedef void (*PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC_HPP)(GLuint,GLubyte,GLubyte,GLubyte,GLubyte,GLfloat,GLfloat,GLfloat);
static inline void ReplacementCodeuiColor4ubVertex3fSUN(GLuint rc1,GLubyte r1,GLubyte g1,GLubyte b1,GLubyte a1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeuiColor4ubVertex3fSUN","GL_SUN_vertex"));
	 fn(rc1,r1,g1,b1,a1,x1,y1,z1);
}
typedef void (*PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC_HPP)(const GLuint *,const GLubyte *,const GLfloat *);
static inline void ReplacementCodeuiColor4ubVertex3fvSUN(const GLuint * rc1,const GLubyte * c1,const GLfloat * v1)
{
	static PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeuiColor4ubVertex3fvSUN","GL_SUN_vertex"));
	 fn(rc1,c1,v1);
}
typedef void (*PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC_HPP)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void ReplacementCodeuiNormal3fVertex3fSUN(GLuint rc1,GLfloat nx1,GLfloat ny1,GLfloat nz1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeuiNormal3fVertex3fSUN","GL_SUN_vertex"));
	 fn(rc1,nx1,ny1,nz1,x1,y1,z1);
}
typedef void (*PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC_HPP)(const GLuint *,const GLfloat *,const GLfloat *);
static inline void ReplacementCodeuiNormal3fVertex3fvSUN(const GLuint * rc1,const GLfloat * n1,const GLfloat * v1)
{
	static PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeuiNormal3fVertex3fvSUN","GL_SUN_vertex"));
	 fn(rc1,n1,v1);
}
typedef void (*PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC_HPP)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(GLuint rc1,GLfloat s1,GLfloat t1,GLfloat r1,GLfloat g1,GLfloat b1,GLfloat a1,GLfloat nx1,GLfloat ny1,GLfloat nz1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN","GL_SUN_vertex"));
	 fn(rc1,s1,t1,r1,g1,b1,a1,nx1,ny1,nz1,x1,y1,z1);
}
typedef void (*PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC_HPP)(const GLuint *,const GLfloat *,const GLfloat *,const GLfloat *,const GLfloat *);
static inline void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN(const GLuint * rc1,const GLfloat * tc1,const GLfloat * c1,const GLfloat * n1,const GLfloat * v1)
{
	static PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN","GL_SUN_vertex"));
	 fn(rc1,tc1,c1,n1,v1);
}
typedef void (*PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC_HPP)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(GLuint rc1,GLfloat s1,GLfloat t1,GLfloat nx1,GLfloat ny1,GLfloat nz1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN","GL_SUN_vertex"));
	 fn(rc1,s1,t1,nx1,ny1,nz1,x1,y1,z1);
}
typedef void (*PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC_HPP)(const GLuint *,const GLfloat *,const GLfloat *,const GLfloat *);
static inline void ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(const GLuint * rc1,const GLfloat * tc1,const GLfloat * n1,const GLfloat * v1)
{
	static PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN","GL_SUN_vertex"));
	 fn(rc1,tc1,n1,v1);
}
typedef void (*PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC_HPP)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void ReplacementCodeuiTexCoord2fVertex3fSUN(GLuint rc1,GLfloat s1,GLfloat t1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeuiTexCoord2fVertex3fSUN","GL_SUN_vertex"));
	 fn(rc1,s1,t1,x1,y1,z1);
}
typedef void (*PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC_HPP)(const GLuint *,const GLfloat *,const GLfloat *);
static inline void ReplacementCodeuiTexCoord2fVertex3fvSUN(const GLuint * rc1,const GLfloat * tc1,const GLfloat * v1)
{
	static PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeuiTexCoord2fVertex3fvSUN","GL_SUN_vertex"));
	 fn(rc1,tc1,v1);
}
typedef void (*PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC_HPP)(GLuint,GLfloat,GLfloat,GLfloat);
static inline void ReplacementCodeuiVertex3fSUN(GLuint rc1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeuiVertex3fSUN","GL_SUN_vertex"));
	 fn(rc1,x1,y1,z1);
}
typedef void (*PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC_HPP)(const GLuint *,const GLfloat *);
static inline void ReplacementCodeuiVertex3fvSUN(const GLuint * rc1,const GLfloat * v1)
{
	static PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC_HPP fn=reinterpret_cast<PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC_HPP>(_impl::_get_proc_address("glReplacementCodeuiVertex3fvSUN","GL_SUN_vertex"));
	 fn(rc1,v1);
}
typedef void (*PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC_HPP)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void TexCoord2fColor3fVertex3fSUN(GLfloat s1,GLfloat t1,GLfloat r1,GLfloat g1,GLfloat b1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC_HPP>(_impl::_get_proc_address("glTexCoord2fColor3fVertex3fSUN","GL_SUN_vertex"));
	 fn(s1,t1,r1,g1,b1,x1,y1,z1);
}
typedef void (*PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC_HPP)(const GLfloat *,const GLfloat *,const GLfloat *);
static inline void TexCoord2fColor3fVertex3fvSUN(const GLfloat * tc1,const GLfloat * c1,const GLfloat * v1)
{
	static PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC_HPP>(_impl::_get_proc_address("glTexCoord2fColor3fVertex3fvSUN","GL_SUN_vertex"));
	 fn(tc1,c1,v1);
}
typedef void (*PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC_HPP)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void TexCoord2fColor4fNormal3fVertex3fSUN(GLfloat s1,GLfloat t1,GLfloat r1,GLfloat g1,GLfloat b1,GLfloat a1,GLfloat nx1,GLfloat ny1,GLfloat nz1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC_HPP>(_impl::_get_proc_address("glTexCoord2fColor4fNormal3fVertex3fSUN","GL_SUN_vertex"));
	 fn(s1,t1,r1,g1,b1,a1,nx1,ny1,nz1,x1,y1,z1);
}
typedef void (*PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC_HPP)(const GLfloat *,const GLfloat *,const GLfloat *,const GLfloat *);
static inline void TexCoord2fColor4fNormal3fVertex3fvSUN(const GLfloat * tc1,const GLfloat * c1,const GLfloat * n1,const GLfloat * v1)
{
	static PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC_HPP>(_impl::_get_proc_address("glTexCoord2fColor4fNormal3fVertex3fvSUN","GL_SUN_vertex"));
	 fn(tc1,c1,n1,v1);
}
typedef void (*PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC_HPP)(GLfloat,GLfloat,GLubyte,GLubyte,GLubyte,GLubyte,GLfloat,GLfloat,GLfloat);
static inline void TexCoord2fColor4ubVertex3fSUN(GLfloat s1,GLfloat t1,GLubyte r1,GLubyte g1,GLubyte b1,GLubyte a1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC_HPP>(_impl::_get_proc_address("glTexCoord2fColor4ubVertex3fSUN","GL_SUN_vertex"));
	 fn(s1,t1,r1,g1,b1,a1,x1,y1,z1);
}
typedef void (*PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC_HPP)(const GLfloat *,const GLubyte *,const GLfloat *);
static inline void TexCoord2fColor4ubVertex3fvSUN(const GLfloat * tc1,const GLubyte * c1,const GLfloat * v1)
{
	static PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC_HPP>(_impl::_get_proc_address("glTexCoord2fColor4ubVertex3fvSUN","GL_SUN_vertex"));
	 fn(tc1,c1,v1);
}
typedef void (*PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC_HPP)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void TexCoord2fNormal3fVertex3fSUN(GLfloat s1,GLfloat t1,GLfloat nx1,GLfloat ny1,GLfloat nz1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC_HPP>(_impl::_get_proc_address("glTexCoord2fNormal3fVertex3fSUN","GL_SUN_vertex"));
	 fn(s1,t1,nx1,ny1,nz1,x1,y1,z1);
}
typedef void (*PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC_HPP)(const GLfloat *,const GLfloat *,const GLfloat *);
static inline void TexCoord2fNormal3fVertex3fvSUN(const GLfloat * tc1,const GLfloat * n1,const GLfloat * v1)
{
	static PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC_HPP>(_impl::_get_proc_address("glTexCoord2fNormal3fVertex3fvSUN","GL_SUN_vertex"));
	 fn(tc1,n1,v1);
}
typedef void (*PFNGLTEXCOORD2FVERTEX3FSUNPROC_HPP)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void TexCoord2fVertex3fSUN(GLfloat s1,GLfloat t1,GLfloat x1,GLfloat y1,GLfloat z1)
{
	static PFNGLTEXCOORD2FVERTEX3FSUNPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD2FVERTEX3FSUNPROC_HPP>(_impl::_get_proc_address("glTexCoord2fVertex3fSUN","GL_SUN_vertex"));
	 fn(s1,t1,x1,y1,z1);
}
typedef void (*PFNGLTEXCOORD2FVERTEX3FVSUNPROC_HPP)(const GLfloat *,const GLfloat *);
static inline void TexCoord2fVertex3fvSUN(const GLfloat * tc1,const GLfloat * v1)
{
	static PFNGLTEXCOORD2FVERTEX3FVSUNPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD2FVERTEX3FVSUNPROC_HPP>(_impl::_get_proc_address("glTexCoord2fVertex3fvSUN","GL_SUN_vertex"));
	 fn(tc1,v1);
}
typedef void (*PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC_HPP)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void TexCoord4fColor4fNormal3fVertex4fSUN(GLfloat s1,GLfloat t1,GLfloat p1,GLfloat q1,GLfloat r1,GLfloat g1,GLfloat b1,GLfloat a1,GLfloat nx1,GLfloat ny1,GLfloat nz1,GLfloat x1,GLfloat y1,GLfloat z1,GLfloat w1)
{
	static PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC_HPP>(_impl::_get_proc_address("glTexCoord4fColor4fNormal3fVertex4fSUN","GL_SUN_vertex"));
	 fn(s1,t1,p1,q1,r1,g1,b1,a1,nx1,ny1,nz1,x1,y1,z1,w1);
}
typedef void (*PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC_HPP)(const GLfloat *,const GLfloat *,const GLfloat *,const GLfloat *);
static inline void TexCoord4fColor4fNormal3fVertex4fvSUN(const GLfloat * tc1,const GLfloat * c1,const GLfloat * n1,const GLfloat * v1)
{
	static PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC_HPP>(_impl::_get_proc_address("glTexCoord4fColor4fNormal3fVertex4fvSUN","GL_SUN_vertex"));
	 fn(tc1,c1,n1,v1);
}
typedef void (*PFNGLTEXCOORD4FVERTEX4FSUNPROC_HPP)(GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat,GLfloat);
static inline void TexCoord4fVertex4fSUN(GLfloat s1,GLfloat t1,GLfloat p1,GLfloat q1,GLfloat x1,GLfloat y1,GLfloat z1,GLfloat w1)
{
	static PFNGLTEXCOORD4FVERTEX4FSUNPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD4FVERTEX4FSUNPROC_HPP>(_impl::_get_proc_address("glTexCoord4fVertex4fSUN","GL_SUN_vertex"));
	 fn(s1,t1,p1,q1,x1,y1,z1,w1);
}
typedef void (*PFNGLTEXCOORD4FVERTEX4FVSUNPROC_HPP)(const GLfloat *,const GLfloat *);
static inline void TexCoord4fVertex4fvSUN(const GLfloat * tc1,const GLfloat * v1)
{
	static PFNGLTEXCOORD4FVERTEX4FVSUNPROC_HPP fn=reinterpret_cast<PFNGLTEXCOORD4FVERTEX4FVSUNPROC_HPP>(_impl::_get_proc_address("glTexCoord4fVertex4fvSUN","GL_SUN_vertex"));
	 fn(tc1,v1);
}}
#endif

#ifndef GL_WIN_phong_shading
#define GL_WIN_phong_shading
#ifndef GL_PHONG_WIN
#define GL_PHONG_WIN 0x80EA
#endif //GL_PHONG_WIN
#ifndef GL_PHONG_HINT_WIN
#define GL_PHONG_HINT_WIN 0x80EB
#endif //GL_PHONG_HINT_WIN
extern "C" {
}
namespace gl{
}
#endif

#ifndef GL_WIN_specular_fog
#define GL_WIN_specular_fog
#ifndef GL_FOG_SPECULAR_TEXTURE_WIN
#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC
#endif //GL_FOG_SPECULAR_TEXTURE_WIN
extern "C" {
}
namespace gl{
}
#endif

#endif
